На что должен быть установлен MAC-адрес назначения при отправке пакета за пределы вашей локальной сети? - PullRequest
2 голосов
/ 19 июля 2010

Если я использую arp и arping на машинах в моей локальной сети, я получаю от них mac-адреса.Таким же образом я могу создать и отправить запрос ARP и собрать ответ на эти машины.Это используется, поскольку я собираю необработанные пакеты полностью с нуля (чтобы разрешить подделку всех возможных полей, включая mac-адреса, если это необходимо)Но когда я пытаюсь использовать arping или arp на внешних ip и хостах, таких как google.com, он не получает никакого ответа.На что должен быть установлен MAC-адрес назначения при отправке пакетов на цели за пределами моей локальной сети?Я думаю, маршрутизатор, так как это то, что передает его ... я прав?Есть ли в ANSI C быстрый способ собрать mac-адрес используемого маршрутизатором компьютера?Или хотя бы IP, чтобы я мог отправить ему ARP-запрос.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 19 июля 2010

Операции MAC ограничены машинами, напрямую подключенными к вашей подсети. Поэтому вы должны использовать MAC-адрес маршрутизатора для пакетов, предназначенных для узлов вне вашей подсети.

Существует множество способов получить IP-адрес маршрутизатора.

  1. Вы можете анализировать файлы конфигурации на локальном хосте, если интерфейс статически настроен.

  2. Вы можете увидеть, есть ли на вашей вычислительной платформе API, позволяющий напрямую обращаться к информации о конфигурации интерфейса. Это будет работать как в статическом, так и в случае DHCP.

  3. Вы можете написать код сокета, чтобы отправить сообщение ICMP на внешний адрес, а затем проанализировать входящие ответы. Они будут от роутера. В этом случае стек найдет для вас маршрутизатор.

0 голосов
/ 19 июля 2010

Должен быть установлен шлюз (при условии, что Ethernet на этой ссылке ...).

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