[Linux] Qui est connecté sur mon réseau ?

300

 

Salut à tous,

 

Je vous écris ce petit billet pour peut-être répondre à un besoin simple ... ( faire la même chose que le spartiate là-haut ! )

Bref une petite chose qui peut concerner à la fois  les développeurs, les particuliers bidouilleurs et les administrateurs systèmes ?

 

Comme vous le savez j'aime utiliser et vous faire utiliser des choses qui sont nativement sur vos ordinateurs ...

Ce qui vous évite de télécharger tout un tas de saloperies inutiles !

 

Aussi, et je m'adresse tout particulièrement aux Linuxiens !
J'ai développé pour vous un petit script Bash, qui vous retourne la liste des adresses IP utilisées sur votre réseaux, et les noms des machines auxquelles celles-ci sont attachées !

 

En Gros !

 

  • Vous saurez combien de personnes sont connecté sur votre réseau
  • Vous saurez les noms de leurs machines (hostname)

 

Un petit aperçus du résultat ?

 

Screenshot - 01302016 - 05:34:24 PM

 

Pour résumer un peu :
Mon script parcourt vos interfaces réseau et récupère les informations automatiquement ...
Ensuite il parcourt un range d'IP !
Il réalise pour chacune des adresses IP un "NSLOOKUP", si le nslookup retourne un résultat positif on l'affiche.

 

Bref pour un mec qui n'est pas expert, et qui a des besoins simples, avec une configuration type :
"J'ai une box avec une configuration par défaut et moins de 254  machines (pc, smartphone, imprimantes, ... ) chez moi"
Ça devrait le faire !

 

#!/bin/bash


ifconfig | grep "inet addr" | grep "Bcast" | while read line; do
        res=`echo $line | cut -d':' -f2 `
      
        ip1=`echo $res | cut -d'.' -f1`
        ip2=`echo $res | cut -d'.' -f2`
        ip3=`echo $res | cut -d'.' -f3`

        ip=$ip1.$ip2.$ip3. 
        x=1;
        while [ $x -le 255 ]; do
                x=$(( $x + 1 ))
                res=`nslookup $ip$x | grep name`
                if [ "e$res" != "e" ]; then
                        name=`echo $res | cut -d'=' -f2`
                        echo $ip$x  : $name
                fi      
        done
done; 

 

On reste là sur de "interrogation DNS", ce qui rend la chose rapide (à la différence de NMAP) .
Néanmoins, si vous ne voyez rien apparaître ... ou bien de mauvaises infos

Posez vous les bonnes questions :
Utilisez vous sur les bons DNS ? Avez vous vidé le cache DNS ? ...

Partagez ce contenu

2 comments

  • Hello,

    je sais que cela date mais sur ubuntu 8.10 ou ifconfig n’est plus installé automatiquement la sortie n’est plus la même.

    voici les modifications pour que cela fonctionne (rien de méchant)

     

    #!/bin/bash
    
    
    ifconfig | grep "inet " | grep "broadcast" | while read line; do
            res=`echo $line | cut -d' ' -f2 `
          
            ip1=`echo $res | cut -d'.' -f1`
            ip2=`echo $res | cut -d'.' -f2`
            ip3=`echo $res | cut -d'.' -f3`
    
            ip=$ip1.$ip2.$ip3. 
            x=1;
            while [ $x -le 255 ]; do
                    x=$(( $x + 1 ))
                    res=`nslookup $ip$x | grep name`
                    if [ "e$res" != "e" ]; then
                            name=`echo $res | cut -d'=' -f2`
                            echo $ip$x  : $name
                    fi      
            done
    done; 

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *