Le problème c'est que nmap sert à scanner les ports ouverts et fermés d'une machine mais ça ne permet pas de certifier l'OS utilisé (après tout tu es libre d'ouvrir et fermer les ports que tu veux). De plus le -O ne marche pas à tous les coups et suppose que le nmap soit lancé en root.
(mando@aldur) (~) $ nmap -O localhost
TCP/IP fingerprinting (for OS scan) requires root privileges. Sorry, dude.
QUITTING!
(root@aldur) (~) # nmap -O localhost
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-03-28 22:23 CEST
Interesting ports on localhost (127.0.0.1):
Not shown: 1675 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
113/tcp open auth
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-pc-linux-gnu%D=3/28%Tm=460ACEE7%O=21%C=1)
TSeq(Class=RI%gcd=1%SI=442B10%IPID=Z)
TSeq(Class=RI%gcd=1%SI=442B09%IPID=Z)
TSeq(Class=RI%gcd=1%SI=4425E4%IPID=Z)
T1(Resp=Y%DF=Y%W=8000%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=8000%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
Nmap finished: 1 IP address (1 host up) scanned in 10.205 seconds
Mais bon on va supposer que tu es entouré d'utilisateurs normaux. Il faut alors choisir un port "approprié" genre le port netbios pour les windows, ou ssh pour les linux (port 22).
#!/bin/bash
for i in $(seq 15)
do
ip=10.117.26.$i
log = log_${ip}.txt
echo "scanning ${ip}"
nmap -O ${ip} > ${log}
done
Bonne chance