Script pour obtenir le nom, l'IP et la MAc des PC du réseau

Script pour obtenir le nom, l'IP et la MAc des PC du réseau - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 03-10-2012 à 09:20:37    

Bonjour à tous
 
Je lance la commande suivante afin d'obtenir le nom, l'IP et la MAC des PC du réseau :
 
for i in `nmap -sL 192.168.1.* | grep pc | awk -F " " '{print $2}' | awk -F "." '{print $1}'`; do nmblookup -A $i; done
 
 
Voici un extrait du résultat obtenu :
 
Looking up status of 192.168.1.138
No reply from 192.168.1.138
 
Looking up status of 192.168.1.139
    PC00797        <00> -         M <ACTIVE>  
    PARC            <00> - <GROUP> M <ACTIVE>  
    PC00797        <20> -         M <ACTIVE>  
    PARC            <1e> - <GROUP> M <ACTIVE>  
 
    MAC Address = 00-1C-C4-XX-XX-XX
 
 
 
Je voudrais une mise en page du résultat sur une seule ligne par ordinateur du style :
 
No reply from 192.168.1.138
PC00797 ; 192.168.1.139 ; 00-1C-C4-XX-XX-XX
 
Merci d'avance pour votre aide

Reply

Marsh Posté le 03-10-2012 à 09:20:37   

Reply

Marsh Posté le 05-10-2012 à 16:24:28    

Bonjour
 
J'ai décomposé mon problème...
 
J'ai maintenant un fichier "tout_pc" avec le nom des machines à rechercher.
 
#!/bin/bash
for i in `cat tout_pc`
do
nmblookup -A $i > temp
NAME=`cat temp | grep PC |grep \<00\> | awk -F " " '{print $1}'`
IP=`cat temp | grep 192.168 | awk -F " " '{print $5}'`
MAC=`cat temp | grep MAC | awk -F " " '{print $4}' `
echo $NAME ";" $IP ";" $MAC >>info.txt
done
 
 
Mais il me reste 2 problèmes
 
1er Certaines variables $NAME, $IP et $MAC sont vides, je dois trouver le moyen de faire un test sur ces variables (Non vide et/ou bonnes informations)
 
2eme Sachant d'avance que le script ne va pas trouver tous les PC au premier lancement, je dois retirer de ma liste "tout_pc" les machines déjà trouvées.  (je pense à un sed /$i/d tout_pc)
 
Merci pour votre aide.


Message édité par redmail le 05-10-2012 à 16:34:04
Reply

Marsh Posté le 05-10-2012 à 16:51:48    

Pour vérifier si une variable n'est pas vide : test -n.
 
Ce qui donne dans ton cas, si tu veux t'assurer qu'une variable est vide :
 

Code :
  1. [ ! -n "${_myvar_}" ]


 
Pour ton deuxième problème, un bête grep -v peut suffire.

Reply

Marsh Posté le 05-10-2012 à 17:00:34    

Code :
  1. test ! -n "$var" == test -z "$var"

!

Reply

Marsh Posté le 05-10-2012 à 17:49:34    

Mouais, sinon pour la partie scan ip + obtenir les adresses MAC correspondantes, un "bête" ARP-Scan ne suffirait pas ?
http://1.bp.blogspot.com/_nF2AQDhdiZc/THt3qd0SPVI/AAAAAAAACQY/6n-ePjfR5-I/s1600/arp-scan.png
 
Il resterait que la partie nom de machine à traiter [:spamatounet]


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed