2013-12-09 2 views
0

У меня есть несколько веб-камер, MAC-идентификаторы которых известны. Мне нужен способ определения соответствующих IP-адресов. Предположим, что все в одной сети Wi-Fi. Однако у меня нет прав изменять настройки сетевого маршрутизатора Wi-Fi (другими словами, я не могу назначать статические IP-адреса для кулачков).RARP с использованием стандартных библиотек Python

Я слышал об обратном протоколе ARP, который может помочь идентифицировать IP-адрес с учетом MAC-идентификатора. There is библиотека, доступная для ARP/RARP, но мне было интересно, можно ли это сделать без установки внешней библиотеки.

ответ

1

Вы можете использовать raw-сокет и реализовать протокол самостоятельно. Это не должно быть так сложно, если вы чувствуете себя комфортно, когда ваши руки грязные. Однако я не уверен, что он будет работать так, как ожидалось. Он довольно старый и, вероятно, не поддерживается. Возможно, вы можете положиться на DHCP. Но если вы не можете калечить маршрутизатор, возможно, единственное, что осталось сделать - это «сканирование ARP».

+0

Что такое "ARP scan"? Могу ли я выполнять ARP с использованием стандартных библиотек в Python? – Nik

+1

Это просто «bruteforce», вы делаете ARP-запросы для каждого IP-адреса в подсети (возможно, сначала запрашиваете IP-адреса, ранее принадлежавшие вашим целям), пока не найдете то, что хотите. Это грязный и уродливый, но я не могу думать ни о чем лучше. Однако протокол ARP не реализован в стандартных libs в python, но это довольно простой протокол, вы можете попробовать реализовать его самостоятельно со структурными и сырыми сокетами. Вот некоторые ссылки: [Спецификации ARP] (https://tools.ietf.org/html/rfc826), [struct] (http://docs.python.org/2/library/struct.html). – smeso

+0

В качестве побочного примечания: при работе с сокет на низком уровне [scapy] (http://www.secdev.org/projects/scapy/) действительно полезно, но я предполагаю, что вы не хотите использовать внешние библиотеки. – smeso

Смежные вопросы