Czy istnieje sposób na pingowanie ARP w systemie Windows?


26

W systemie Linux i innych systemach istnieje narzędzie o nazwie arping, którego można używać do wysyłania żądań ARP („pingi”) i wyświetlania odpowiedzi, podobnie jak narzędzie „ping”, ale używając ARP zamiast ICMP.

Czy jest jakiś sposób zrobić to samo w systemie Windows? (Używam Windows 7)

Odpowiedzi:


15

Arping dla Windows faktycznie istnieje.

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

Korekta: dotyczy Linuksa, MAC OSX itp., Ale można ją zainstalować w systemie Windows za pośrednictwem programu Cygwin.


Żeby było jasne, wszystko w sieci musi teraz odpowiadać na ARP, dlatego prawie wszystko „obsługuje” pingowanie ARP. Pytanie, czy mają do tego ładne narzędzie zapakowane z łuku, jest pytaniem.
Qix

14

Jeśli wyczyścisz pamięć podręczną arp dla systemu Windows (arp -d), a następnie spróbujesz pingować adres IP, wyda ona emisję arp.

Sprawdź to za pomocą Wireshark.


Czy to zachowanie jest gwarantowane?
Pacerier

2
@Pacerier: Tak, ponieważ ICMP (ping) jest zbudowany na warstwie IP. Warstwa IP potrzebuje adresu sprzętowego dla danego adresu IP, aby wiedzieć, do kogo wysłać pakiet. Jeśli pamięć podręczna ARP jest pusta, warstwa IP nie będzie miała innego wyboru, jak tylko wysłać żądanie ARP, zanim będzie mogła wysłać pakiet.
Cameron

1
To zachowanie NIE jest gwarantowane. Stanie się tak tylko wtedy, gdy adres IP będzie osiągalny zgodnie z regułami podsieci; w przeciwnym razie użyje adresu IP bramy domyślnej do wydania żądania ARP.
Peter Crabtree,

6

Polecenie ARP WinXP służy wyłącznie do wyświetlania danych. Wypróbuj Nmap, jest darmowy i dość łatwy dla tego typu skanowania. Nmap jest dostępny na stronie insecure.org.


4
Prawdopodobnie jest to najbliższe narzędzie arping (przy pomocy nmap -PR -sP <host>). Gratulacje, wygrałeś.
Etienne Dechamps

1
@ e-t172 W przypadku nowszych wersji nmap nmap -PR -sn <host>preferowane jest polecenie . -sPjest przestarzałe. Również działało to dla mnie, gdy uruchomiłem go jako root.
Nic

5

Wbudowany sposób na wykonanie tego w systemie 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! "

Wow, to jest hardcore - uwielbiam ja! I prawie tu działa. Właściwie musiałem dodać spację, -na 1więc stało się:... @ping -n 1 ...
saulius2 18.04.16

Ta pętla działa na zawsze. Myślę, że to, co zamierzałeś, 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! "działa dwa razy, a więc zbiera zduplikowane adresy MAC.
parsley72,

3

Nie jest to dokładnie „ping” ARP, ale uruchomienie „arp inet_addr (adres ip)” z wiersza polecenia spowoduje wysłanie pojedynczego żądania ARP do hosta określonego w (adres ip). Następnie możesz uruchomić „arp -a”, aby zobaczyć wynik.


Po prostu nie działa. Otrzymuję monit z powrotem, ale nic się nie stało. Sniffer nie pokazał wychodzących żądań ARP. Ten sam wynik, jeśli adres IP nie znajduje się już w tabeli ARP.
Etienne Dechamps

Racja, nie odzyskujesz wyniku. Polecenie wysyła pojedyncze żądanie ARP na adres IP, który następnie można zobaczyć, wydając polecenie arp -a. Powiedziałem, że nie jest to dokładnie ping arp, ale wysyła pojedyncze żądanie arp.
joeqwerty

Nie, nie ma. Jak powiedziałem, sniffer sieciowy nie pokazuje wychodzącego żądania ARP i do arp -a nie jest dodawany żaden wpis.
Etienne Dechamps

To jest dziwne. Działa dokładnie tak, jak opisałem w systemie Windows 7, ale nie w systemie Windows XP. Przepraszam.
joeqwerty

1
Przepraszam, to też nie działa dla mnie na Win7.
Cameron


3

Spróbuj „arp-ping.exe”

Pomyślałem, że dodam to narzędzie, które działa bezpośrednio z wiersza polecenia:

Opcje wiersza polecenia 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

W porównaniu do opcji wiersza polecenia „arping” w systemie Linux

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

Jak uzyskać tabelę ARP z interfejsem API Helper IP http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: pobiera informacje z tabeli rozdzielczości adresów.

SetIpNetEntry: Dodaje wpis do tabeli ARP.

DeleteIpNetEntry: Usuwa wpis z tabeli ARP.

CreateIpNetEntry: Tworzy wpis w tabeli ARP.

FlushIpNetTable: Usuwa wszystkie wpisy ARP dla określonego interfejsu z tabeli ARP

SendARP: Wysyła żądanie ARP w celu uzyskania adresu fizycznego, który odpowiada podanemu docelowemu adresowi IP.


0

Niestety nie ma wbudowanego narzędzia do wykonywania tego w systemie Windows, istnieją narzędzia innych firm, które to zrobią, takie jak Netscan , ale nie jest to bezpłatne



0

Hardping to porządny program, który to robi.

Dostępna jest pełna wersja, która kosztuje więcej niż program ping, ale używam tylko wersji darmowej. Ten darmowy robi tylko 1 ip na raz, ale to wszystko, czego potrzebowałem.

Używałbyś go jak c:> hardping 192.168.1.1 i odpowiadałby na Macu, czy nie.

Myślę, że zdjęli go ze swojej witryny, ale nadal możesz go znaleźć, przeglądając „hardping freeware”


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

dawny: arp -a 192.168.0.1


To polecenie wyszuka tylko bieżącą pamięć podręczną arp, a nie wyda nowej arp „Kto ma 192.168.0.1?” wniosek
Chriz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.