Чи є спосіб ARP пінг в Windows?


26

У Linux та інших системах існує утиліта під назвою arping, яка може використовуватися для надсилання запитів ARP ("pings") і показувати відповіді, подібно до утиліти "ping", але використовуючи ARP замість ICMP.

Чи можна зробити те ж саме в Windows? (Я використовую Windows 7)

Відповіді:


15

Арпінг для вікон насправді існує.

http://freshmeat.net/projects/arping/

Виправлення: це для Linux, MAC OSX тощо ..., але його можна встановити на Windows через cygwin.


Щоб було зрозуміло, що сьогодні все в мережі має відповідати на ARP, тому майже все "підтримує" PPing ARP. Чи є у них приємна утиліта для утилізації, це питання.
Qix

14

Якщо ви очистите кеш-пам'ять архіву Window (arp -d), а потім спробуєте пінг-адреси ip-адреси, він видасть арп-трансляцію.

Перевірте це за допомогою Wireshark.


Чи гарантована така поведінка?
Pacerier

2
@Pacerier: Так, оскільки ICMP (ping) побудований поверх IP-шару. IP-шару потрібна апаратна адреса для певної IP-адреси, щоб знати, кому надсилати свій пакет. Якщо кеш ARP порожній, IP-шару не залишатиметься іншого вибору, окрім як подати запит ARP, перш ніж він може відправити пакет.
Камерон

1
Така поведінка НЕ гарантується. Це відбудеться лише в тому випадку, якщо IP-адреса буде доступна за правилами підмережі; в іншому випадку він використовуватиме IP-адресу шлюзу за замовчуванням для видачі запиту ARP.
Пітер Кребтрі

6

Команда ARP WinXP призначена лише для відображення даних. Спробуйте Nmap, для цього типу сканування це безкоштовно і досить просто. Nmap доступний на сайті insecure.org.


4
Це, мабуть, найближче я можу дістатись до утиліти arping (використовуючи nmap -PR -sP <host>). Вітаю, ви виграли.
Етьєн Дечамп

1
@ e-t172 У нових версіях nmap команда nmap -PR -sn <host>є кращою. -sPзастаріло. Крім того, це працювало для мене лише тоді, коли я запускав його як root.
Нік

5

Вбудований спосіб зробити це у Windows:

cmd /V /C "set "IP=10.0.2.2" & FOR /L %i in (1,0,2) do @ping -n1 -w 1000 "!IP!" >NUL & arp -a | findstr /c:"!IP! "

Ух, це хардкор - я люблю i! І це майже працює тут. Насправді мені довелося додати пробіл між ними, -nі 1так стало:... @ping -n 1 ...
saulius2

Ця петля працює вічно. Я думаю, те, що ти задумав, - це те, cmd /V /C "set "IP=10.0.2.2" & FOR /L %i in (1,1,2) do @ping -n 1 -w 1000 "!IP!" >NUL & arp -a | findstr /c:"!IP! "що працює два рази і так набирає повторювані MAC адреси.
петрушка72

3

Це не зовсім "ping" ARP, але запуск "arp inet_addr (ip адреса)" з командного рядка надішле один запит ARP хосту, вказаному в (ip адреса). Потім можна запустити "arp -a", щоб побачити результат.


Просто не працює. Я повертаюся, але нічого не сталося. Снайфер не показав жодних запитів ARP. Той самий результат, якщо IP-адреса ще не в таблиці ARP.
Етьєн Дечамп

Правильно, ви не отримаєте результату. Команда надсилає єдиний запит ARP на ip адресу, після чого ви зможете побачити результат, видавши команду arp -a. Я сказав, що це не зовсім арп-пінг, але він надсилає єдиний запит arp.
joeqwerty

Ні, це не так. Як я вже сказав, мережевий sniffer не відображає жодного запиту ARP і arp -a не додається жодної записи.
Етьєн Дешамп

Це дивно. Він працює саме так, як я описав у Windows 7, але не в Windows XP. Вибачте.
joeqwerty

1
Не працює для мене ні на Win7, вибачте.
Камерон


3

Спробуйте "arp-ping.exe"

Думав, я би додав цей інструмент, який працює безпосередньо з командного рядка:

Параметри командного рядка arp-ping.exe

Usage: arp-ping.exe [options] target
        -s ip : specify source ip
        -n X  : ping X times
        -t    : ping until stopped with CTRL-C
        -x    : exit immediately after successful ping
        -i X  : ping every X seconds
        -d    : do an 'arp -d *' between pings (requires Administrator)
                (-d prevents cached ARP responses on Windows XP.)
        -c    : include date and time on each line
        -m X  : ignore failures that take less than X milliseconds
        -.      : print a dot (.) for every ignored failure
        -l    : print debug log
        -v    : print version and exit

На відміну від параметрів командного рядка Linux "arping"

Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination
-f : quit on first reply
-q : be quiet
-b : keep broadcasting, don't go unicast
-D : duplicate address detection mode
-U : Unsolicited ARP mode, update your neighbours
-A : ARP answer mode, update your neighbours
-V : print version and exit
-c count : how many packets to send
-w timeout : how long to wait for a reply
-I device : which ethernet device to use (eth0)
-s source : source ip address
destination : ask for what ip address

1

Як отримати таблицю ARP за допомогою API Helper http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: Отримує інформацію таблиці роздільної здатності адреси.

SetIpNetEntry: додає запис до таблиці ARP.

DeleteIpNetEntry: Видаляє запис із таблиці ARP.

CreateIpNetEntry: створює запис у таблиці ARP.

FlushIpNetTable: Видаляє всі записи ARP для вказаного інтерфейсу з таблиці ARP

SendARP: надсилає запит ARP для отримання фізичної адреси, яка відповідає вказаній IP-адресі призначення.


0

На жаль, не існує вбудованого інструменту для цього в Windows, є деякі сторонні інструменти, які роблять це, наприклад, Netscan , але це не безкоштовно


0

Я вважаю, що ви можете арп-пінг з CAIN , який є безкоштовним.


0

Гарпінг - це гідна програма, яка робить це.

Є повна версія, яка коштує грошей, це більше програма для розгортання пінгу, але я просто використовую безкоштовну версію. Безкоштовний робить лише 1 ip за один раз, але це все, що мені було потрібно.

Ви б використовували це як c:> hardping 192.168.1.1, і він відповів би mac чи ні.

Я думаю, що вони зняли його зі свого сайту, але ви все одно можете знайти його, гуглюючи "хардпінг безкоштовно"


-1
arp -a your.ip.here.jo

колишній: arp -a 192.168.0.1


Ця команда буде шукати лише поточний кеш арпу, а не видавати новий арп "У кого 192.168.0.1?" запит
Кріз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.