有什么办法可以在Windows上ARP ping吗?


26

在Linux和其他系统上,有一个称为arping的实用程序,可用于发送ARP请求(“ ping”)并显示答案,与“ ping”实用程序非常相似,但使用ARP而不是ICMP。

在Windows上有什么方法可以做同样的事情吗?(我使用Windows 7)

Answers:


15

为Windows设置Armp实际上存在。

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

更正:这适用于Linux,MAC OSX等...,但可以通过cygwin安装在Windows上。


需要明确的是,当今网络上的任何事物都需要响应ARP,因此几乎任何“支持” ARP ping的事物。问题是他们是否有一个不错的打包工具。
Qix

14

如果您清除Window的arp缓存(arp -d),然后尝试ping ip地址,它将发出arp广播。

使用Wireshark进行检查。


这种行为得到保证吗?
Pacerier,2015年

2
@Pacerier:是的,因为ICMP(ping)建立在IP层之上。IP层需要给定IP地址的硬件地址,以便知道将其数据包发送给谁。如果ARP缓存为空,则IP层别无选择,只能发出ARP请求,然后才能发送数据包。
卡梅隆2015年

1
无法保证这种行为。仅当根据子网规则可访问IP地址时,才会发生这种情况。否则,它将使用默认网关的IP地址发出ARP请求。
彼得·克拉布特里

6

WinXP的ARP命令仅用于显示数据。尝试使用Nmap,它是免费的,并且对于这种类型的扫描而言相当容易。Nmap可从insecure.org获得。


4
这可能是我最接近arping实用程序(使用nmap -PR -sP <host>)。恭喜,您赢了。
Etienne Dechamps,2009年

1
@ e-t172对于较新版本的nmap,nmap -PR -sn <host>首选使用此命令。-sP不推荐使用。另外,这仅在我以root身份运行时才对我有用。
Nic 2013年

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

哇,这是硬派-我爱我!它几乎在这里工作。实际上,我必须在它们之间添加一个空格-n1因此它变成了:... @ping -n 1 ...
saulius2 '16

此循环永远运行。我认为您的意图是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地址。
parsley72

3

这不完全是ARP“ ping”,而是从命令提示符运行“ arp inet_addr(IP地址)”将向(IP地址)中指定的主机发送单个ARP请求。然后,您可以运行“ arp -a”以查看结果。


只是不起作用。我得到了提示,但什么都没发生。嗅探器未显示任何ARP请求发出。如果IP地址不在ARP表中,则结果相同。
Etienne Dechamps,2009年

是的,您不会得到结果。该命令将单个ARP请求发送到ip地址,然后您可以通过发出arp -a命令查看结果。我说这不完全是arp ping,但确实会发送一个arp请求。
joeqwerty

不,不是。就像我说的那样,网络嗅探器不会显示任何ARP请求发送出去,也不会向arp -a添加任何条目。
Etienne Dechamps,2009年

那很奇怪。它的工作方式与我在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

如何使用IP Helper API获取ARP表 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

强化是一个不错的程序。

有一个完整的版本需要花钱,而更多的是ping扫描程序,但我只是使用免费版本。免费的一次只能做1 ip,但这就是我所需要的。

您可以像使用c:> harding 192.168.1.1一样使用它,它是否会与mac一起回复。

我认为他们将其从网站上删除了,但是您仍然可以通过搜索“加固免费软件”来找到它


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

例如: arp -a 192.168.0.1


此命令将仅针对当前的arp缓存进行查找,而不发出新的arp“谁拥有192.168.0.1?” 要求
Chriz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.