[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Trouver le hostname d'une autre machine à partir de son ip



Kevin Hinault wrote:
Le 14 décembre 2009 01:11, Kenny <kenny@bruxxel.org> a écrit :
Kevin Hinault wrote:
Le 13 décembre 2009 22:38, Stephane Bortzmeyer <stephane@sources.org> a
écrit :
Pour savoir si c'est la « bonne » machine, il n'y a pas d'autre
solution que de s'y connecter (par exemple en SSH qui, contrairement à
IP, a une notion d'identité).
Il y a aussi l'adresse Ethernet qui n'est pas censé changer (ce qui
est faux, elle est modifiable) et qui peut servir d'identité basique
si on est pas trop regardant.
Hooo..
On peut facilement retrouver l'adresse Ethernet d'une autre machine sur le
réseau?
Ce serait magnifique ça..

[Je remets ce fil en public, tu m'as répondu en privé]

oups..décidément..


Si tu connais l'adresse Ethernet au préalable mais que tu veux par
exemple trouver l'ip qui lui corresponde tu peux utiliser le cache
arp. Normalement dans chaque machine le cache arp devrait contenir une
correspondance DNS/IP/Ethernet des différents pc avec lequel il à
récemment communiqué.

C'est bien vérifier qu'à une adresse Ip, toujours la même, correspond une adresse Eth.
Donc juste un arp 172.19.3.3 est nickel

Mais tu peux faire des interrogations à ta guise avec arping par exemple :
arping -c 1 -i eth0 00:1a:a0:3a:ad:b4
puis
arp -a | grep "00:1a:a0:3a:ad:b4"
te donnera toutes les infos nécessaires (Adresse Ethernet à adapter).
Il semble que cette méthode ne soit pas parfaite non plus. Il doit y
avoir bien mieux pour faire des requêtes de type rarp mais je
n'utilise pas ce genre de technique tous les jours.

arp fonctionne très bien, jusqu'à présent, excepté le petit délai qu'il génère, mais bon, cela me convient bien tel quel.
La connexion réseau ne se fait pas toutes les 5 min non plus.

Je viens de faire quelques tests sur un desktop lenny et un laptop ubuntu 9.04) avec mon nouveau script, et je dois dire que ça fonctionne à merveille des 2 côtés.

J'ai débranché, rebranché, le cable, le wi-fi, tout fonctionne :)
Un vrai bonheur.

Juste que j'ai du ajouter un ping avant ma commande arp sinon elle renvoyait "unknown host" à chaque fois.

J'ai mis mon script en bas du mail pour ceux que cela pourrait intéresser.


Il est aussi possible de scanner en utilisant  l'excellent nmap qui
liste rapidement les hôtes du réseau et te donne adresse IP / Ethernet
/ DNS et même constructeur des cartes réseaux :
nmap -sP 192.168.1.0/24
(CIDR à adapter bien sûr)



Un tout grand merci pour votre aide.

C'est plein de joie que je vais me diriger vers mon lit..

Kenny


Script dans /etc/network/if-up.d/monscript:
#!/bin/sh

# VARIABLES
IpAddressServeur="172.19.3.3"
EthAddressServeur="00:11:85:62:53:e9"

NewResolvConfInfo="# RESOLV.CONF GENERATED BY QUENENNI'S SCRIPT IN\n# /etc/networking/if-up.d/QuenenniResolvConf\n#\n# This script change the resolv.conf only if you are connected to $ProjectName network\n# It will let your resolv.conf untouched if not\n\n" NewResolvConf="search mondomaine\nnameserver 172.19.3.3\nnameserver 172.19.3.1"

# PING D'ABORD SINON ARP RENVOIE AUTO PAS BON
ServeurPingRes="$(ping -n -c 1 $IpAddressServeur)"

# TEST ARP SUR L'ADRESSE DU SERVEUR
ServeurPingRes="$(arp $IpAddressServeur)"

# TEST SI HOSTNAME CORRESPOND A ADRESSE IP
# $RES AURA L'ADRESSE IP COMME VALEUR SI BON, VIDE SI PAS BON
if [ "$(expr match "$ServeurPingRes" ".*${EthAddressServeur}.*")" -gt 0 ]
then
        # ON EST SUR MON RESEAU -> MAJ DU RESOLV.CONF
        echo -e "$NewResolvConfInfo$NewResolvConf" > /etc/resolv.conf
fi


Reply to: