Re[3]: Нужен универсальный способ определения MAC адреса
От: ServerMouse Беларусь  
Дата: 25.02.02 16:52
Оценка:
Здравствуйте toypaul, Вы писали:

T>А как послать пакет?


Сокеты. Создаёшь UDP сокет и вперёд... Инфы по этому полно.

Т>У тебя есть рабочий исходник, в котором есть все?


С собой нет. Если найду, принесу. Давно такое писалось....

T>И еще — если мне нужен MAC не шлюза, а именно хоста, то как быть?


Хм. IMHO никак. Это др. подсеть и по идее шлюз для того и стоит что бы их разделять. На физическом уровне ты шлёш пакет на МАС шлюза с указанием IP из др. подсети. У шлюза имеется своя таблица IP<->МАС плюс табл. маршрутизации. В соотв. с этим он и отправляет твой пакет дальше по другому МАС, даже не зная, оконечный там хост или ещё один маршрутизатор.

Простейшая проверка технологии из консоли:
1. Делаешь ping HOST_IP
2. Делаешь arp -a
и наблюдаешь HOST_IP HOST_MAC (или GATEWAY_MAC :) )

Кстати техника определения абсолютно не зависит от открытости/установлености NetBIOS.
И абсолютно неважно, примет ли удалённый хост твой пакет или проигнорирует его. Для того что бы убедится в этом проделай примерно следующую последовательность:
1. arp -d HOST_IP удаляем из таблицы, если запись там случайно осталась.
2. telnet
3. open HOST_IP
4. получаем Could not open a connection to host: Connect failed. Это потому, что там порт такой вообще закрыт и соединение невозможно в принципе. НО! Нам важно что пакет был ОТОСЛАН!
5. arp -a и видим HOST_IP HOST_MAC Так вот.

Локальная таблица со временем устаревает (от 1 до 30 мин) потому забирать надо сразу.
Если человек программист, то это надолго.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.