Определение МАС-адреса с сервера
🕛 19.06.2009, 14:08
МАС-адрес клиента также можно определить с помощью сервера DHCP. Для этого необходимо, чтобы средства поддержки стека протоколов на клиентском компьютере работали исправно. Сконфигурируйте клиент для работы с сервером DHCP так, чтобы после загрузки клиент получил от сервера динамический IP-адрес. Затем ознакомьтесь с содержимым файла аренды (обычно это файл /var/lib/dhcp/dhcpd. leases). В нем вы найдете запись, которая выглядит приблизительно следующим образом:lease 192.168.1.50 { starts 4 2002/07/19 21:37:20; ends 4 2002/07/19 23:17:20; binding state active; next binding state free; hardware ethernet 00:50:56:82:01:03; }В приведенной записи указаны IP-адрес, выделенный клиенту, время начала и завершения аренды, а также прочая информация, в том числе МАС-адрес (hardware ethernet 0 О :50:56:82:01:03). Чтобы использовать содержимое файла аренды для определения МАС-адреса, вы должны знать, какой IP-адрес выделен клиенту. Это можно определить по времени аренды либо обратиться за этими сведениями на клиентскую машину.
МАС-адреса могут также содержаться в файле протокола Linux (обычно это файл /var/log/messages). Последнюю запись, содержащую имя dhcpd, можно найти с помощью следующей команды:
# grep dhcpd /var/log/messages I tail -n 1
Jul 19 18:27:38 speaker dhcpd: DHCPACK on 192.168.1.50 to 00:50:56:82:01:03 via ethO
Эту команду можно выполнить сразу после того, как сервер DHCP выделит IP-адрес клиенту. Если вы не знаете IP-адреса, присвоенного клиенту, вы рискуете ошибочно определить МАС-адрес. Так может случиться, если после запроса интересующего вас компьютера какой-то из клиентов обратится к серверу DHCP для того, чтобы продлить аренду. Зная IP-адрес, проверьте запись в файле протокола. Если адрес не совпадает, просмотрите другие записи, задавая значения опции -п программы tail, отличные от 1.
И, наконец, независимо от того, использует ли клиент статический IP-адрес или получил адрес от сервера DHCP, вы можете определить МАС-адрес с помощью команды агр. Вызовите команду агр на любом Linux-компьютере вашей сети, указав в качестве параметра IP-адрес клиента.
# агр 192.168.1.50 Address HWtype HWaddress Flags Mask Iface 192.168.1.50 ether 00:50:56:82:01:03 С ethO
Не исключено, что перед вызовом агр вам придется инициировать обмен данными с клиентом. Используйте для передачи пакета программу ping. Соответствующая команда выглядит следующим образом: ping -с 192 .168 .1. 50