web-dev-qa-db-fra.com

Trouver l'adresse IP de l'appareil directement connecté

Existe-t-il un moyen de connaître l'adresse IP d'un périphérique directement connecté à une interface Ethernet spécifique? C'est à dire. étant donné un hôte, une connexion Ethernet filaire et un second hôte connecté à cette connexion filaire, quelle couche ou protocole sous IP pourrait être utilisé pour le découvrir.

Je serais également à l'aise avec une solution Windows uniquement utilisant une fonction ou un rappel Windows-API.

(Je sais que la vraie façon de le faire serait probablement via DHCP, mais il s'agit de découvrir un périphérique hérité.)

17
pmf

Pour utiliser DHCP, vous devez exécuter un serveur DHCP sur le serveur principal et un client sur le serveur secondaire; le principal pourrait alors interroger le serveur pour savoir quelle adresse il a distribuée. Probablement exagéré.

Je ne peux pas vous aider directement avec Windows. Sous Unix, la commande "arp" vous indiquera quelles adresses IP sont connues pour être attachées au segment Ethernet local. Windows aura cette même information (car c'est une partie centrale de l'interface IP/Ethernet) mais je ne sais pas comment vous y arrivez.

Bien sûr, la pile de mise en réseau ne connaîtra l'autre hôte que s'il en a déjà vu du trafic. Vous devrez peut-être d'abord envoyer un paquet de diffusion sur l'interface pour obtenir une sorte de réponse et ainsi remplir la table ARP locale.

8
Brian White

Mmh ... il y a plusieurs façons. Je réponds à une autre question de découverte de réseau, et j'écris un peu pour commencer .

Certaines piles tcpip répondent aux diffusions icmp. Vous pouvez donc essayer un PING vers votre adresse de diffusion réseau.

Par exemple, vous avez l'ip 192.168.1.1 et le sous-réseau 255.255.255.0

  1. ping 192.168.1.255
  2. arrêter le ping après 5 secondes
  3. regarder les réponses des appareils: arp -a

Remarque: à l'étape 3. vous obtenez les listes des entrées en cache MAC-IP, il y a donc aussi les hôtes de votre sous-réseau vers lesquels vous échangez des données dans les dernières minutes, même s'ils ne répondent pas à icmp_get.

Note (2): maintenant je suis sur linux. Je ne suis pas sûr, mais il se peut que Windows ne réponde pas à icm_get via la diffusion.

Est-ce le seul appareil connecté à votre PC? Est-ce un routeur ou un autre PC simple?

15
Massimo

Votre meilleure approche consiste à installer Wireshark, à redémarrer l'appareil, à attendre le flux TCP/UDP, les diffusions annonceront l'adresse IP pour les deux ports Ethernet.Ceci est particulièrement utile lorsque l'appareil connecté n'a pas de client DHCP activé, alors vous pouvez y aller. .

4
Hani Yasin

Windows 7 contient la commande arp. arp -a devrait vous montrer les interfaces de type statique et dynamique connectées à votre système.

3
Sachin Kalakeri

Vous pouvez également obtenir des informations à partir de périphériques réseau directement connectés, tels que des commutateurs réseau avec LDWin, un programme Windows portable et gratuit publié sur github:

http://www.sysadmit.com/2016/11/windows-como-saber-la-ip-del-switch-al-que-estoy-conectado.html

LDWin prend en charge les méthodes suivantes de découverte de liens: CDP (Cisco Discovery Protocol) et LLDP (Link Layer Discovery Protocol).

Vous pouvez obtenir le modèle, l'IP de gestion, VLAN identifiant, identifiant de port, version du firmware, etc.

2
Vincent Vega