Windows'ta ARP ping uygulamasının bir yolu var mı?


26

Linux ve diğer sistemlerde, ARP isteklerini ("ping") göndermek için kullanılabilecek ve "ping" yardımcı programı gibi ancak yanıtları ICMP yerine ARP kullanarak kullanılabilecek arping adlı bir yardımcı program vardır.

Aynı şeyi Windows'ta yapmanın bir yolu var mı? (Windows 7 kullanıyorum)

Yanıtlar:


15

Windows için arping aslında var.

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

Düzeltme: Bu Linux, MAC OSX vb. İçindir, ancak pencerelere cygwin üzerinden yüklenebilir.


Açık olmak gerekirse, günümüzde ağdaki herhangi bir şeyin ARP'ye yanıt vermesi gerekiyor, bu nedenle ARP pingingini "destekleyen" herhangi bir şey hakkında. Onlar bunu yapmak için bir yay ile güzel bir paketlenmiş yardımcı programı olup olmadığı sorusu.
Qix

14

Window'un arp önbelleğini (arp-d) temizler ve ardından ip adresini pinglemeye çalışırsanız, arp yayını yayınlar.

Wireshark ile kontrol edin.


Bu davranış garantili mi?
Pacerier

2
@Pacerier: Evet, çünkü ICMP (ping) IP katmanının üzerine inşa edilmiştir. IP katmanı, paketinin kime gönderileceğini bilmek için belirli bir IP adresi için donanım adresine ihtiyaç duyar. ARP önbelleği boşsa, IP katmanının paketi göndermeden önce bir ARP isteği yayınlamaktan başka seçeneği yoktur.
Cameron,

1
Bu davranış olduğunu DEĞİL garantili. Yalnızca IP adresine alt ağ kurallarına göre erişilebiliyorsa gerçekleşir; Aksi takdirde, ARP isteğinde bulunmak için varsayılan ağ geçidinin IP adresini kullanır.
Peter Crabtree

6

WinXP'nin ARP komutu yalnızca verileri görüntülemek içindir. Nmap'ı deneyin, bu tür bir tarama için ücretsiz ve oldukça kolaydır. Nmap insecure.org adresinde bulunabilir.


4
Muhtemelen arping yardımcı programına bulabildiğim en yakın şey (nmap -PR -sP <host> kullanarak). Tebrikler kazandın.
Etienne Dechamps,

1
@ e-t172 nmap'ın daha yeni sürümlerinde, komut nmap -PR -sn <host>tercih edilir. -sPkullanımdan kaldırıldı. Ayrıca, bu sadece benim için root olarak çalıştırdığımda işe yaradı.
Nic

5

Bunu pencerelerde yapmanın bir yolu:

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! "

Vay, bu hardcore - ben seni seviyorum! Ve neredeyse burada çalışıyor. Aslında arasına bir boşluk eklemek zorunda kaldım -nve 1şöyle oldu:... @ping -n 1 ...
saulius2 11

Bu döngü sonsuza dek sürüyor. Sanırım, neyin hedeflendiğini 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! "iki kez çalışır ve yinelenen MAC adreslerini seçer.
maydanoz72

3

Bu tam olarak bir ARP "ping" değil, komut isteminden "arp inet_addr (ip address)" çalıştırılması, (ip adresi) içinde belirtilen ana bilgisayara tek bir ARP isteği gönderir. Daha sonra sonucu görmek için "arp -a" komutunu çalıştırabilirsiniz.


Sadece çalışmıyor İstemi geri alıyorum ama hiçbir şey olmadı. Bir keskin nişancı hiçbir ARP isteğinin geldiğini göstermedi. IP adresi zaten ARP tablosunda değilse, aynı sonuç.
Etienne Dechamps

Doğru, geri bir sonuç alamadım. Komut ip adresine tek bir ARP isteği gönderir, ardından arp -a komutunu vererek sonucu görebilirsiniz. Tam olarak bir arp ping değil, ama tek bir arp isteği gönderiyor dedim.
joeqwerty

Hayır değil. Dediğim gibi, bir ağ dinleyicisi hiçbir ARP isteğinin dışarı çıktığını göstermez ve arp -a'ya hiçbir giriş eklenmez.
Etienne Dechamps

Bu garip. Tam olarak Windows 7'de tanımladığım gibi çalışıyor ancak Windows XP'de çalışmıyor. Üzgünüm.
joeqwerty

1
Benim için de Win7'de çalışmıyor, üzgünüm.
Cameron,


3

"Arp-ping.exe" dosyasını deneyin

Doğrudan komut isteminden çalışan bu aracı ekleyeceğimi düşündüm:

arp-ping.exe komut satırı seçenekleri

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'a karşı "arping" komut satırı seçenekleri

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

IP Yardımcısı API'siyle ARP Tablosu Nasıl Gidilir? Http://www.codeguru.com/cpp/in/internet/internetprotocolip/article.php/c6153

GetIpNetTable: Adres çözünürlüğü tablosu bilgisini alır.

SetIpNetEntry: ARP tablosuna giriş ekler.

DeleteIpNetEntry: ARP tablosundan girişi siler.

CreateIpNetEntry: ARP tablosunda bir giriş oluşturur.

FlushIpNetTable: Belirtilen arabirim için tüm ARP girişlerini ARP tablosundan siler

SendARP: Belirtilen hedef IP adresine karşılık gelen fiziksel adresi almak için bir ARP isteği gönderir.


0

Ne yazık ki, Windows'ta bunu yapmak için yerleşik bir araç yok, Netscan gibi bunu yapacak bazı üçüncü taraf araçlar var , ancak ücretsiz değil.



0

Hardping, bunu yapan iyi bir programdır.

Bir ping süpürme programından daha pahalıya mal olan tam sürüm var, ancak ücretsiz sürümü kullanıyorum. Özgür olan, bir seferde sadece 1 ip yapar, ama bunun için ihtiyacım olan buydu.

192.168.1.1 hardping c:> gibi kullanır ve mac ile cevap verir veya vermezdi.

Sanırım siteden çıkardılar ama hala "freping" yazılımını kullanarak bulmaya devam edebilirsiniz.


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

örn: arp -a 192.168.0.1


Bu komut yalnızca geçerli arp önbelleğine bakar, yeni bir arp yayınlamaz "Kim 192.168.0.1'e sahiptir?" istek
Chriz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.