RSS
 

Articles associés au tag ‘astuce’

Retrouver une IP donnée par DHCP sans avoir accès à la machine

18 Sep

Ou comment se connecter en ssh sur un serveur dont on ignore l’IP (à condition de l’avoir à côté de soi)

Ca ne servira sans doute pas à grand monde mais …

Un serveur de fichiers/imprimantes qui se trouvait chez moi a été déplacé sur un réseau où le serveur DHCP lui a attribué une IP unique, mais sans accès direct à la machine (qui ne possède ni écran ni clavier) il m’était impossible de savoir laquelle.

Etant un gros malin, je me suis intéressé au problème un  vendredi soir. Donc pas question de demander au service info l’IP attribuée à la machine…

Du coup j’ai eu l’idée de pinger toutes la plage d’adresses attribuées par le serveur DHCP sans ma machine branchée, puis une seconde fois avec elle tout en relevant les IPs qui répondaient, et soustraire les résultats du premier  scan au second.

Connaissant les deux premières valeurs de l’IP il n’y avait que 255² possibilités à tester à chaque fois. Bref pas énorme. Mais devant la lenteur du script j’ai du me résoudre à changer de technique.

Un choix possible est de réaliser le scan avec toutes les machines dont mon serveur puis retester uniquement ces adresses afin de réduire le temps de la deuxième étape. Mais ce qui prend du temps c’est justement les machines qui répondent, donc je ne gagnais pas grand chose à faire ça.

La solution retenue est beaucoup plus simple :

Il suffit de relier la machine au réseau pour qu’elle reçoive son adresse, puis déconnecter le reste du réseau afin qu’il n’y ait qu’elle qui réponde.

Pour ce faire j’ai tout simplement relié sur le même switch le serveur et mon laptop, connecté celui-ci au réseau puis je l’ai déconnecté. Du point de vue des machines, elles ont toujours un périphérique relié au port Ethernet et ne se soucient pas de redemander une IP.

Ceci fait, j’ai utilisé un script qui scanne toutes les adresses possibles. Comme seul mon serveur et mon laptop sont sur le réseau, je récupère 2 adresses uniquement. Je teste les deux et Bingo !

Le script Bash :

#!/bin/bash
for ((j=156 ; j<160; j+=1))
do
        for ((i=0 ; i<255; i+=1))
        do
    echo « N.M.$j.$i »
        if ping -q N.M.$j.$i
        then echo « N.M.$j.$i » >> »./pingIPs »
        fi
        done
done

On remarque que j’avais une idée du troisième chiffre, car j’avais réussi à tomber sur la plage d’adressage du batiment, et j’avais donc un millier seulement d’adresses à tester.