Windows上でpingをARPする方法はありますか?


26

Linuxおよび他のシステムには、ARP要求(「ping」)を送信して回答を表示するために使用できるarpingと呼ばれるユーティリティがあります。

Windowsで同じことをする方法はありますか?(Windows 7を使用しています)

回答:


15

ウィンドウのArpingは実際に存在します。

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

修正:これはLinux、MAC OSXなど向けですが、cygwinを介してWindowsにインストールできます。


明確にするために、現在のネットワーク上のすべてのものはARPに応答する必要があるため、ARP pingを「サポート」するものはほぼすべてです。そうするための素敵なパッケージ付きのユーティリティがあるかどうかが問題です。
Qix

14

Windowのarpキャッシュをクリアして(arp -d)、ipアドレスをpingしようとすると、arpブロードキャストが発行されます。

Wiresharkで確認してください。


この動作は保証されていますか?
-Pacerier

2
@Pacerier:はい。ICMP(ping)はIP層の上に構築されるためです。IP層は、パケットの送信先を知るために、所定のIPアドレスのハードウェアアドレスを必要とします。ARPキャッシュが空の場合、IPレイヤーはパケットを送信する前にARP要求を発行する以外に選択肢がありません。
キャメロン

1
この動作は保証されていません。サブネットルールに従ってIPアドレスに到達できる場合にのみ発生します。そうでない場合は、デフォルトゲートウェイのIPアドレスを使用してARP要求を発行します。
ピータークラブツリー

6

WinXPのARPコマンドは、データのみを表示するためのものです。Nmapをお試しください。このタイプのスキャンは無料で、かなり簡単です。Nmapはinsecure.orgで入手できます。


4
これはおそらく、arpingユーティリティに到達できる最も近いものです(nmap -PR -sP <host>を使用)。おめでとうございます、勝ちました。
エティエンヌデシャンプス

1
@ e-t172 nmapの新しいバージョンでは、コマンドnmap -PR -sn <host>が優先されます。-sP非推奨です。また、これはルートとして実行した場合にのみ機能しました。
ニック

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

うわー、これはハードコアです-私は大好きです!そして、ここではほとんど機能しています。実際、間にスペースを追加する必要があったため-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! "2回実行され、重複したMACアドレスを取得することだと思います。
パセリ72

3

これは正確にはARP「ping」ではありませんが、コマンドプロンプトから「arp inet_addr(ipアドレス)」を実行すると、(ipアドレス)で指定されたホストに単一のARP要求が送信されます。その後、「arp -a」を実行して結果を確認できます。


うまくいきません。私はプロンプトを取り戻しましたが、何も起こりませんでした。スニッファーは、ARP要求が出てくることを示しませんでした。IPアドレスがARPテーブルにまだない場合も同じ結果になります。
エティエンヌデシャンプス

正しい結果は得られません。このコマンドは、IPアドレスに単一のARP要求を送信します。その後、arp -aコマンドを発行して結果を確認できます。正確にはarp pingではないが、単一のarpリクエストを送信します。
joeqwerty

いいえ、そうではありません。先ほど言ったように、ネットワークスニファーは、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

IPヘルパー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

Hardpingはこれを行う適切なプログラムです。

pingスイーププログラムのような費用がかかるフルバージョンがありますが、私はフリーウェアバージョンを使用しています。無料のものは一度に1つのipしか行いませんが、それが私がそれを必要としたすべてです。

c:> hardping 192.168.1.1のように使用すると、macで応答するかどうかが決まります。

彼らは彼らのサイトからそれを取り除いたと思うが、あなたはまだ「ハードウェアフリーウェア」をグーグルで見つけることによってそれを見つけることができる


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

例: arp -a 192.168.0.1


このコマンドは、現在のarpキャッシュに対してのみルックアップし、新しいarp「Who has 192.168.0.1?」を発行しません。リクエスト
Chriz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.