Get IP à partir de l'adresse MAC. arp-a ne pas montrer de l'appareil
Je suis en train d'écrire un fichier de commandes qui est censé trouver l'IP attribuée dynamiquement de mon téléphone Android, lorsqu'il est connecté au réseau (routeur WiFi Tenda).
Donc j'essaye de arp -a
et à la recherche de mon téléphone adresse MAC afin que je puisse obtenir son adresse IP à partir de la table.
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 ça ne fonctionne toujours pas. J'ai essayé de demander 192.168.0.100 (IP de mon PC de bureau) depuis le navigateur du téléphone, et que bien sûr met le téléphone sur le radar. Mais je n'ai pas la possibilité de faire manuellement à chaque fois que je veux qu'il apparaisse dans la table arp.
Comment puis-je obtenir le téléphone Android pour apparaître dans la table arp (sans rien faire de lui en plus de la connexion à la WiFi)?
RÉSOLU: Résolu avec la commande ping. Il ne prend pas plus d'une seconde ou deux.
EDIT 2: mis à Jour un peu plus. Voici le dernier fichier de commandes:
@echo off
:top
:: Loop through arp table entries and look for my Android device's MAC address
for /f "tokens=1-5 skip=3" %%f in ('arp -a') do (if "%%g"=="xx-xx-xx-xx-xx-xx" set ip=%%f)
if "%ip%"=="" (
echo Discovering network...
:: Ping all IPs from 192.168.0.1 to 254
for /L %%N in (1,1,254) do start /b ping -n 1 -w 200 192.168.0.%%N >nul
timeout 1 >nul
goto :top
) else (
echo Mapping network location to drive K
net use k: http://%ip%:8080 /user:francis underwood /persistent:no
if exist k: explorer k:
:: Using FTP (please configure user and pass)
:: explorer ftp://user:pass@%%f:6262
)
)
Je suis en train d'essayer de se fonder uniquement sur les commandes de Windows. Ne pas installer quoi que ce soit. Je préfère juste faire une boucle par toutes les adresses et les ping, même si cela est beaucoup trop long.
que diriez - ceci
désolé, vu que vous avez essayé.
Je m'en tiendrais un
timeout 1 > nul
ou l'équivalent avant votre deuxième boucle for pour éviter une situation de concurrence en vertu de laquelle une réponse ping pour le périphérique que vous êtes après n'est pas rentré avant d'appeler arp -a
.
OriginalL'auteur SouPress | 2014-08-20
Vous devez vous connecter pour publier un commentaire.
J'ai essayé et ça marche:
fourni le téléphone a ICMP activé, vous ne devriez avoir aucun problème.
Tout à fait raison, j'avais oublié cette option. Également ajouté quelques options à la commande ping pour le faire revenir plus vite.
J'ai été craignant d'aller le ping route parce que j'ai imaginé qu'il prendrait super long, mais c'est vraiment de la nappe de...
OriginalL'auteur PaddyD
Si vous voulez trouver l'IP du MAC do ce
Remarque: vous devez remplacer VOTRE-MAC, avec votre adresse mac, garder les guillemets simples
Maintenant, si vous voulez trouver l'Adresse MAC de certaines IP, Essayez ceci:
Profitez-en!
OriginalL'auteur Aloiso Junior
Ce Lot Code va chercher l'-dessous,
Veuillez enregistrer le code ci-dessous dans anyname.chauve-souris format et de l'exécuter. Il affiche les résultats dans un fichier texte séparé.
Captures D'Écran Pour Plus De Références,
OriginalL'auteur M.S.Arun
M. S. Arun est réponse est proche des meilleurs. J'ai eu ce problème pour retrieveing quelques machines virtuelles adresse IP pour laquelle j'avais de l'adresse MAC. Beaucoup de réponses, comme M. S. Aruns tout sur stackoverflow et ailleurs, mais personne n'explique, ni de explique la solution correctement (à mon humble avis).
J'ai essayé la technique de la requête ping à tous les sous-réseau, puis faire une commande arp. Le problème était ma plage d'adresse IP a 60k+ possible adresse IP et d'après l'analyse de tous (ce qui n'était pas si simple, et vraiment laid avec la commande de démarrage) de la table arp était vraiment mal renseigné... Btw, il prenait 30 secondes, même en essayant avec "start ping". J'ai finalement compris que l'arp, étant un tableau de cache, des bouffées de chaleur lui-même périodiquement, c'est pourquoi cette méthode rarement réussi.
La solution est un ping sur toutes sous-réseau, mais après chaque ping effectuer une commande arp pour voir si l'adresse IP correspond à l'adresse MAC, qui vous assure de ne pas perdre d'informations en raison de la cache de la nature de l'tables arp. Pour le rendre bon, je l'ai fait en Java; le isReachable() la méthode est vraiment propre et il n'y a pas de cmd invites de frai partout sur mon écran. En outre, la 60k+ plage d'adresses ip à la numérisation prend 10sec à l'aide de threads Java. Je pense que c'est un moyen plus sûr que de lots de script...
Voir threadedScan() la méthode ici qui prend un tableau d'IPs et de la recherche de l'adresse MAC.
J'espère que cela peut aider 😉
OriginalL'auteur eaz
cela pourrait fonctionner
ou
OriginalL'auteur Yash Ojha