Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Пример программы получения МАС-адреса компьютера



Компьютерные системы и сети

 

 

Выполнил: студент группы 417031-13

Сушкина Д.В.

Проверил: преподаватель Русак Л.В.

 

Минск 2015

 

 

Содержание

 

1.Задание № 1…………………………………………………… 3

2.Задание № 2 …………………………………………………...6

Используемые источники ………………………………………11

 

Задание №1

Программы пишутся на любом языке программирования, но должны использоваться только функции Windows API. Написать программу, реализующую следующие функции: 1. Отображение MAC-адреса компьютера (можно воспользоваться функцией netbios).

Откройте командную строку. Для этого нажмите Win + R и в открывшемся окне введите cmd. Нажмите Enter.

(В Windows 8 нажмите Win + X и в меню выберите «Командная строка».)

В командной строке введите getmac /v /fo list и нажмите Enter.

 

Отобразится информация обо всех сетевых подключениях.

 


Найдите строку «Физический адрес». В ней указан ваш MAC-адрес. Убедитесь, что это физический адрес того сетевого адаптера, который вам нужен (обычно отображаются несколько физических адресов, например, отдельно для беспроводного подключения и отдельно для подключения через Ethernet).

 

Пример программы получения МАС-адреса компьютера

(предварительно необходимо прилинковать библиотеку Netapi32.lib)

#include <windows.h>

#include <wincon.h>

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

typedef struct _ASTAT_

{

ADAPTER_STATUS adapt;

NAME_BUFFER NameBuff [30];

}ASTAT, *PASTAT;

ASTAT Adapter;

// Функция получения MAC адреса.

// На вход получает указатель на буфер, куда записывается строковое

// представление полученного MAC адреса.

BOOLGetMacAddress(char*buffer)

{

NCB ncb;

UCHAR uRetCode;

char NetName[50];

memset( &ncb, 0, sizeof(ncb) );

ncb.ncb_command = NCBRESET;

ncb.ncb_lana_num = 0;

uRetCode = Netbios( &ncb );

memset( &ncb, 0, sizeof(ncb) );

ncb.ncb_command = NCBASTAT;

ncb.ncb_lana_num = 0;

strcpy( (char *) ncb.ncb_callname, "* " );

ncb.ncb_buffer = (unsigned char *) &Adapter;

ncb.ncb_length = sizeof(Adapter);

uRetCode = Netbios( &ncb );

if(uRetCode==0)

{

sprintf(buffer, "%02X-%02X-%02X-%02X-%02X-%02X\n",

Adapter.adapt.adapter_address[0],

Adapter.adapt.adapter_address[1],

Adapter.adapt.adapter_address[2],

Adapter.adapt.adapter_address[3],

Adapter.adapt.adapter_address[4],

Adapter.adapt.adapter_address[5]);

return TRUE;

}

returnFALSE;

}

 

 

2. Отображение всех рабочих групп, компьютеров в сети и их ресурсов (папок, открытых для общего доступа, принтеров). Воспользоваться функциями WNetXXX.