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: