Bonjour,
je tente de faire une petit script qui a pour objectif de m'afficher les partages samba de chacun des PC de mon réseau. pour ce, je commence par faire un scan sur le port 139 (nmap) et pour chaque connections ouvertes (partages anonymous), je visualise le nom netbios (nmblookup). ceci fais, je recupère la liste des partages (smbclient)
tout ca, ca marche bien en manuel mais je voulais automatiser la chose :
#!/bin/sh
for i in `nmap -sS 192.168.2-254 -p139 --open | grep Interesting | cut -c 22-36`; do
j=`basename $i :`;
nmblookup -A $j
done
nmap me retourne un truc du genre "interesting ports on <adresse ip>:" avec d'autres infos en dessous, je récupère la bonne ligne avec grep, j'enlève le debut de la ligne avec cut, puis je vire les ":" avec basename.
au final, j'ai l'adresse IP dans la variable j.
enssuite nmblookup m'affiche un truc du style:
Looking up status of 192.168.0.3
TOTO <00> - B <ACTIVE>
MSHOME <00> - <GROUP> B <ACTIVE>
TOTO <20> - B <ACTIVE>
MSHOME <1e> - <GROUP> B <ACTIVE>
MSHOME <1d> - B <ACTIVE>
..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
MAC Address = 00-40-D0-XX-XX-XX
et je souhaite lancer la commande
smbclient -A FIFI -I 192.168.0.3
j'ai deja l'adresse ip dans j mais comment récupérer TOTO ?
je pensais récupérer systématiquement la seconde ligne puis me débrouiller avec cut et basename mais pas moyen de récupérer la dite ligne.
j'ai recordé du coté de "sed" mais ca serait du chinois que je comprendrais mieux.
une idée ?
Poste le Tuesday 9 October 2007 12:22:29