PHP: ARP ?? Ответ на запрос ARP - PullRequest
0 голосов
/ 11 марта 2010

Я знаю, что это может быть невозможный вопрос, поскольку мы имеем дело с двумя разными уровнями сети, но возможно ли отправить ответ на запрос ARP с помощью сокетов PHP?

Если да, то как .... например, к какому порту и IP-адресу вы бы подключили сокет? Опять же, я понимаю, что arp не использует номер порта ... по крайней мере, я не могу сказать.

Я хочу сделать это на PHP, но для тех, кто собирается ставить под сомнение мои намерения, это в конечном счете для программы, которую я пишу для некоторого аппаратного обеспечения. Похоже, что NIC не отвечает на запросы ARP, поэтому я хочу сгенерировать ответ вручную.

По сути, единственные функции, которые меня сблизили, - это функции сокетов. UDP и TCP.

О, я забыл .... если Arp невозможен с сокетами, возможно ли, что, когда я передаю запись "A" для моего имени хоста, я могу дать свой MAC-адрес маршрутизатору в некотором виде DNS ответ, так что маршрутизатор может отвечать на запросы arp для IP-адреса оборудования.

Ответы [ 2 ]

0 голосов
/ 11 марта 2010

Как говорит Sjoerd: нет пути через «нормальные» каналы, так как ARP даже не IP. Но если вы можете вызывать libpcap из PHP, вы можете использовать его для прослушивания ARP-запросов, а также для ввода ответов.

Чтение ваших правок: DNS также не поможет, так как управляет IP-адресами, а не MAC-адресами.

0 голосов
/ 11 марта 2010

ARP работает на канальном уровне, сокеты работают на IP. Если ваш хост не отвечает на запросы ARP, он никогда не сможет правильно принимать пакеты TCP или UDP. Вам необходимо реализовать ARP в операционной системе или сетевом стеке. Это не возможно и не желательно делать в PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...