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)?
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.
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;)
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!
Ce code de lot récupérera ce qui suit,
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 ********************************************************************#
cela pourrait fonctionner
netstat -n
ou
ipconfig /all