Используя pcap_sendpacket
в C я вручную пересылаю следующий пакет wlan0
(Я не учел некоторые поля, но я думаю, что они корректны):
(Ethernet layer)
eth src: <wlan0 MAC address>
eth dest: <wireless router MAC address>
(ARP request layer)
opcode: 1 (Request)
sender_hw: <wlan0 MAC address>
sender_proto: 192.168.1.3 (IP of wlan0)
target_hw: 0 (per usual)
target_proto: 173.194.46.72 (Google.com)
Используя Wireshark для слушания на wlan0
, Я ожидаю видеть, что ответ ARP дает мне MAC-адрес сервера Google. Однако я не вижу, что любые ответы ARP содержат IP Google вообще.
Одна вещь отметить состоит в том, что я создаю этот пакет путем прерывания запроса ARP, отправленного на виртуальный сетевой интерфейс (пакет сгенерирован, когда я использую ping
команда из виртуального netspace), затем переписывая пакет и вводя его на wlan0
использование pcap
, так, чтобы я мог позже получить ответ ARP и передать его назад виртуальной сети. Поэтому я относительно уверен, что другие поля в пакете корректны, так как я действительно не изменил их.
Кто-либо знает то, что могло бы быть проблемой здесь? Одна вещь я - вид того, чтобы замечать, состоит в том, что у меня нет IP-адреса (192.168.1.1) своего маршрутизатора нигде в том пакете; не действительно уверенный, нужно ли мне это или нет.
Google nu se află în rețeaua dvs. de LAN, deci nu puteți obține un răspuns.
Trebuie să utilizați DNS pentru a obține ip-ul de la adresă și le puteți face ping.
Вы _NOT_ получаете ARP-ответ, потому что в вашем широковещательном домене [1] (также известном как локальный сегмент [W] LAN) есть _NOT_ хост, IP-адрес которого является тем, для которого вы ARPing (173.194.46.72).
Чтобы быть более подробным, позвольте мне добавить, что:
ARP - это протокол уровня 2 [2] и, следовательно, как уже упоминалось в Zoredache : « ... ARP не проходит через маршрутизатор ... ». Обычно ARP-запрос отправляется через «широковещательный» Ethernet-кадр. Вот почему он не может пересекать локальный ... широковещательный домен;
даже если вы наверняка можете ARP-запрос для любого IP-адреса, который вам больше нравится (включая Google 173.194.46.72), вы _NOT_ получите любой ARP-ответ (кроме случаев, когда «... Google находится в вашей локальной сети ...», как указано в комментарии M.Hampton выше), потому что в таком случае:
К сожалению, мне не ясно, какую именно проблему вы пытаетесь решить. В любом случае вам может быть полезно вкратце изучить:
" беспричинный ARP " [3], который следует обратной схеме по отношению к общему ARP-Request => Arp-Reply, который вы тестируете;
" подмена / отравление ARP " [4], относительно " отказ в обслуживании " / " человек посередине " / " захват сеанса "атаки, которые могут быть у вас;
" ARPing "[5], как очень простой способ отправить ARP-запрос и проверить ARP-ответ. Это очень полезно, среди других случаев:
для проверки сетевого соединения (для хостов, подключенных к локальной сети), даже когда брандмауэр IP настроен на удаленном хосте (другими словами: вы можете ARP-пинговать локально подключенный хост Windows даже когда брандмауэр Windows активен);
для получения MAC-адресов хостов-нарушителей, когда такие хосты настроены с одним и тем же IP-адресом (вы отправите ONE ARP-запрос и получите ответ НЕСКОЛЬКО ARP-ответа);
" Ettercap " [6], " ... комплексный пакет для атак типа" человек посередине ". Он включает в себя сниффинг живых соединений, фильтрацию контента на лету и многие другие интересные приемы . Он поддерживает активное и пассивное рассечение многих протоколов и включает множество функций для анализа сети и хоста ... "
[1] http://en.wikipedia.org/wiki/Broadcast_domain
[2] http: // en .wikipedia.org / wiki / Address_Resolution_Protocol
[3] http://en.wikipedia.org/wiki/Address_Resolution_Protocol#ARP_announcements
[4] http://en.wikipedia.org/wiki/ARP_spoofing