Lister machines d'un reseau? [Résolu]

Signaler
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007
-
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007
-
Bonjour à tous,

Nous travaillons actuellement sur un projet qui vise à fixer un temps d'utilisation pour des PC équipée de Windows XP présents sur un réseau local.

J'aimerais, du coté administration, pouvoir scanner le réseau pour trouver toutes les machines présentes sur celui ci, soit par leur nom, soit par leur adresse IP, le tout en langage PHP.

Merci d'avance pour votre aide.

6 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Le ping d'une adresse réseau ne donne pas les noms des
hôtes, mais combinée avec les bonnes options (plus du nettoyage...)
donne les IP des machines connectées.

Si on place tout ca dans une boucle et qu'on fait un host sur l'IP récuperée, on peut avoir les noms d'hote de ces IP.


Exemple pratique :


15:02 bling182@Audeline ~% for host in $(ping -A -c 5 -b 10.90.0.0 |
cut -d' ' -f4 | sed '{s/:// ; s/^[^1].*$// }' | sort -u) ; do host
$host ; done

WARNING: pinging broadcast address

Host 99.10.90.10.in-addr.arpa not found: 3(NXDOMAIN)

Host 32.6.90.10.in-addr.arpa not found: 3(NXDOMAIN)

Host 126.82.90.10.in-addr.arpa not found: 3(NXDOMAIN)

Host 127.83.90.10.in-addr.arpa not found: 3(NXDOMAIN)

Host 167.83.90.10.in-addr.arpa not found: 3(NXDOMAIN)

Host 60.83.90.10.in-addr.arpa not found: 3(NXDOMAIN)


(Il s'agit d'addresses privées, et le DNS n'est pas configuré pour jouer cache whois, d'ou le "not found")
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Salut :)

Tu peux essayer de récuperer le résultat d'un exec ('ping -A -b ');

Seul prérequis, ils faut que tes machines répondent au ping...
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007

Re,
L'idée d'utiliser les résultats d'une commande n'est pas bête, bien que le ping d'une adresse réseau n'ai jamais donné les hôtes de ce réseau et que les options -A et -b n'existe pas !!!
Je pourrais cependant utiliser le commande "net view" et traiter le résultat d'une manière ou d'une autre. Mais je préférerai avoir une fonction php déjà toute faite...
Donc merci si vous avez des idées...
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007

Autant pour moi ! Bien joué...


Merci
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007

Re,
Je ne parviens à mettre en place ce que tu m'as donné. Les commandes cut et sed sont des commandes linux ? Comment je fais sous Windows ?
Je suis désolé j'ai un peu de mal là !!!
Merci d'avance
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007

Voilà j'ai adapté à Windows :

    $netview = array();
    exec('net view',$netview);
    for ($i=3;$i<count($netview)-2;$i++)
    {
        $nom = explode(" ",$netview[$i]);       
        $nom[0] = substr($nom[0],2);
        printf($nom[0]."
");
    }

affiche les noms des ordinateurs...

A+