web-dev-qa-db-ja.com

MACアドレスからIPを取得します。 arp -aデバイスを表示していません

ネットワーク(Tenda WiFiルーター)に接続しているときに、Android電話の動的に割り当てられたIPを見つけることになっているバッチファイルを記述しようとしています。

だから私はarp -aと私の電話のMACアドレスを検索して、テーブルからIPを取得できるようにします。

C:\Users\Leeroy>arp -a

Interface: 192.168.0.100 --- 0xb
  Internet Address      Physical Address      Type
  192.168.0.1           c8-3a-35-35-f6-68     dynamic
  192.168.0.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

問題は、テーブルに表示されないことです!私は試した ping 192.168.0.255しかし、まだ表示されません。電話のブラウザから192.168.0.100(私のデスクトップPCのIP)を要求してみましたが、それで電話がレーダーに届きました。ただし、arpテーブルに表示するたびに手動で行うオプションはありません。

Android電話をarpテーブルに表示するにはどうすればよいですか(WiFiに接続する以外は何もせずに))

10
SouPress

私はこれを試しましたが、動作します:

for /L %N in (1,1,254) do start /b ping -n 1 -w 200 192.168.0.%N

電話機でICMPが有効になっている場合、問題はないはずです。

7
PaddyD

M.S.Arun's 答えは最高に近い。この問題は、一部の仮想マシンのIPアドレスを取得するときに発生したもので、MACアドレスだけがありました。 M.S. Arunsのような多くの回答がスタックオーバーフローをはじめとしていますが、誰もそれらを説明せず、解決策を正しく説明しません(IMHO)。

すべてのサブネットをpingしてからarpコマンドを実行する手法を試しました。問題は、私のIP範囲に60k以上のIPアドレスがあり、それらすべてをスキャンした後(それほど単純ではなく、startコマンドで非常にい)、arpテーブルの設定が非常に少なかったことです... 「pingを開始」しようとしても。最終的に、キャッシュテーブルであるarpが定期的に自身をフラッシュすることがわかったため、このメソッドはほとんど成功しませんでした。

解決策はすべてのサブネットをpingすることですが、各pingでarpコマンドを実行してIPがMACアドレスと一致するかどうかを確認します。これにより、arpテーブルのキャッシュの性質により情報が失われないようにします。それを適切にするために、これをJavaで実装しました。 isReachable()メソッドは非常にクリーンで、画面のどこにでもcmdプロンプトが表示されません。さらに、IPスキャンの60k +範囲は、Javaスレッドを使用して最大10秒かかります。バッチスクリプトよりも安全な方法だと思います...

threadedScan()method here を参照してください。これはIPの配列を受け取り、MACアドレスを探します。

これが役立つことを願っています;)

1
eaz

MACからIPを検索する場合は、これを実行します

$  arp -n | grep -w -i 'YOUR-MAC' | awk '{print $1}'

YOUR-MACをMACアドレスに置き換え、一重引用符を使用する必要があることに注意してください

ここで、IPからMACアドレスを見つけたい場合は、これを試してください:

$  arp -n | grep -w -i 'YOUR-IP' | awk '{print $3}'

楽しい!

1
Aloiso Junior

このバッチコードは以下を取得します。

  1. PC名
  2. IPアドレス
  3. Macアドレス
  4. コンピューターの説明(利用可能な場合)

以下のコードをanyname.bat形式で保存して実行してください。結果を別のテキストファイルに出力します。

    :: This Windows Batch(CMD) File fetches All the Details of the Nearby PC's of Same VLAN (Upto 254 Host's).
    :: Windows OS (CMD)
    :: Author : [M.S.Arun][1]

    :: #****************************************************************** Start of Script ********************************************************************#

    @echo off
    title Remote PC Details Fetching Script(PC Name / IP's / Computer Description)
    echo. > %cd%\PC_Details_Temp.txt
    echo Remote PC Details Fetching Script (PC Name / IP's / Computer Description) details of the Nearby PC's of Same VLAN.(Upto 254 Hosts)
    echo.
    set /p input_ip="Please Enter the IP Range(Eg:192.168.1) :  " && echo
    set /p input_ip_start="Please Enter Start IP Range(Eg:1) :  " && echo
    set /p input_ip_end="Please Enter End IP Range(Eg:254) :  " && echo
    echo. >> %cd%\PC_Details_Temp.txt
    @echo on
    for /l %%i in (%input_ip_start%, 1, %input_ip_end%) do nbtstat -a %input_ip%.%%i | findstr /c:"MAC" /c:"<00>" | findstr /c:"MAC" /c:"UNIQUE" >> %cd%\PC_Details_Temp.txt && echo     IP Address  = %input_ip%.%%i >> %cd%\PC_Details_Temp.txt
    @echo off
    echo. > %cd%\PC_Details_Logs.txt
    echo. > %cd%\PC_Details_Logs.txt
    echo This Batch Script fetches All the Details of the Nearby PC's of Same VLAN.(Starting from 1 to 254 Host's) >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo PC Host Name: >> %cd%\PC_Details_Logs.txt
    find "UNIQUE" PC_Details_Temp.txt >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo PC IP Address: >> %cd%\PC_Details_Logs.txt
    find "IP" PC_Details_Temp.txt >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo PC MAC Address: >> %cd%\PC_Details_Logs.txt
    find "MAC" PC_Details_Temp.txt >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo PC Seat No's. and Vnet No's: >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    net view /all >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    echo. >> %cd%\PC_Details_Logs.txt
    arp -a >> %cd%\PC_Details_Logs.txt
    :: del %cd%\PC_Details_Temp.txt
    echo.
    echo Completed Successfully..!
    echo.
    pause

    :: #****************************************************************** End of Script ********************************************************************#

参考のためのスクリーンショット、 enter image description here

enter image description here

1
M.S.Arun

これはうまくいくかもしれない

netstat -n  

または

ipconfig /all 
0
Yash Ojha