web-dev-qa-db-fra.com

Obtenez IP de l'adresse MAC. arp -a ne montre pas le périphérique

J'essaie d'écrire un fichier batch qui est censé trouver l'IP attribuée dynamiquement de mon Android lorsqu'il est connecté au réseau (routeur WiFi Tenda).

J'essaie donc arp -a et la recherche de l'adresse MAC de mon téléphone afin que je puisse obtenir son IP à partir du tableau.

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

Le problème est qu'il n'apparaît pas dans le tableau! J'ai essayé ping 192.168.0.255 mais il n'apparaît toujours pas. J'ai essayé de demander 192.168.0.100 (IP de mon ordinateur de bureau) à partir du navigateur du téléphone, et cela place le téléphone sur le radar. Mais je n'ai pas la possibilité de le faire manuellement chaque fois que je veux qu'il apparaisse dans la table arp.

Comment puis-je faire apparaître le Android dans la table arp (sans rien faire d'autre que la connexion au WiFi)?

10
SouPress

J'ai essayé cela et cela fonctionne:

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

à condition que le téléphone ait activé ICMP, vous ne devriez avoir aucun problème.

7
PaddyD

M.S.Arun la réponse est proche du meilleur. J'ai eu ce problème pour récupérer l'adresse IP de certaines machines virtuelles pour lesquelles je n'avais que l'adresse MAC. Beaucoup de réponses comme M.S.Aruns sont partout dans le stackoverflow et ailleurs, mais personne ne les explique ni n'explique la solution correctement (à mon humble avis).

J'ai essayé la technique de cingler tous les sous-réseaux, puis d'exécuter une commande arp. Le problème était que ma plage IP avait 60k + adresse IP possible et après les avoir tous analysés (ce qui n'était pas si simple et vraiment moche avec la commande de démarrage), la table arp était vraiment mal remplie ... En fait, cela prenait environ 30 secondes, même en essayant avec "start ping". J'ai finalement compris que l'arp, étant une table de cache, se vidait périodiquement, c'est pourquoi cette méthode réussissait rarement.

La solution consiste à envoyer un ping à tous les sous-réseaux, mais après chaque ping, exécutez une commande arp pour voir si l'IP correspond à votre adresse MAC, ce qui vous garantit de ne pas perdre d'informations en raison de la nature du cache des tables d'arp. Pour le rendre approprié, je l'ai implémenté en Java; la méthode isReachable () est vraiment plus propre et aucune invite cmd n'apparaît partout sur mon écran. De plus, la plage de 60k + de l'analyse des adresses IP prend jusqu'à 10 secondes en utilisant Java threads. Je pense que c'est un moyen plus sûr que le script par lots ...

Voir méthode threadedScan () ici qui prend un tableau d'adresses IP et recherche l'adresse MAC.

J'espère que cela peut vous aider;)

1
eaz

Si vous voulez trouver l'IP à partir du MAC, faites ceci

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

Notez que vous devez remplacer YOUR-MAC, avec votre adresse mac, gardez les guillemets simples

Maintenant, si vous voulez trouver l'adresse MAC à partir d'une IP, essayez ceci:

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

Prendre plaisir!

1
Aloiso Junior

Ce code de lot récupérera ce qui suit,

  1. Nom du PC
  2. Adresse IP
  3. Adresse Mac
  4. Description de l'ordinateur (si disponible)

Veuillez enregistrer le code ci-dessous au format anyname.bat et l'exécuter. Il affichera les résultats dans un fichier texte séparé.

    :: 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 ********************************************************************#

Captures d'écran pour les références, enter image description here

enter image description here

1
M.S.Arun

cela pourrait fonctionner

netstat -n  

ou

ipconfig /all 
0
Yash Ojha