Page 1 sur 1
[R] Comment trouver le nom DNS d"une machine
Posté : mer. 10 févr. 2010 11:40
par Apprentiweb
Bonjour à tous,
En reprenant un script du forum, j'arrive à extraire la liste des postes connectés à mon réseau.
► Afficher le texte
Code : Tout sélectionner
#Include <File.au3>
dim $alisteip
$valplage = InputBox("Plage IP","Indiquer la plage IP a scanner : ")
$cptok = 0
$cptnok = 0
for $i = 1 to 255
if ping($valplage & $i,250) Then
FileWrite(@ScriptDir & "\ipok.txt",$valplage & $i & ",OK" & @CRLF)
$cptok = $cptok + 1
Else
FileWrite(@ScriptDir & "\ipok.txt",$valplage & $i & ",Pas de réponse" & @CRLF)
$cptnok = $cptnok + 1
EndIf
Next
MsgBox(0,"Information","Nombre d'IP ok : " & $cptok & @CRLF & "Nombre d'IP sans réponse : " & $cptnok)
Je cherche à récupérer les noms DNS des machines avec une commande équivalent à un "ping -a 192.168.0.0".
Merci d'avance
Re: [..] Comment trouver le nom DNS d"une machine
Posté : mer. 10 févr. 2010 19:32
par jl56
Bonjour
j'utilise un outil gratuit netscan.exe
http://www.softperfect.com/products/networkscanner/
il scan un réseau de classe c en moins de 10 secondes
il est exécutable en ligne de commande ( donc par le script ) regarde sur le site
tu peut exporter le résultat du scan dans un fichier texte
et lire ce fichier avec autoit
de cette façon je récupère la liste des IP ( routeur, pc, imprimante réseau) avec le nom dns et même les dossiers partagés des pc
A+ JL56
Re: [..] Comment trouver le nom DNS d"une machine
Posté : jeu. 11 févr. 2010 12:57
par IceMaKeR
Perso j'utilise une fonction qui s'appuie sur nslookup (présent sur tous les pc)
nslookup : "nslookup 192.168.1.1"
Il renvoie une ligne contenant le nom dns complet de la machine
Re: [..] Comment trouver le nom DNS d"une machine
Posté : jeu. 11 févr. 2010 17:03
par Apprentiweb
Merci IceMaker pour la piste du nslookup.
Je viens de modifier la boucle si mon adresse ip répond
► Afficher le texte
Code : Tout sélectionner
;Suppression du fichier bat
FileDelete("c:\bat.bat")
;Suppression du fichier nlook
FileDelete("c:\nlook.txt")
;Creation du fichier bat
FileWrite("c:\bat.bat","nslookup " & $valplage & $i & " > c:\nlook.txt" & @CRLF)
;Execution du fichier bat
ShellExecute("c:\bat.bat")
Sleep(500)
;Ouverture du fichier nlook.txt
$filenl = FileOpen("c:\nlook.txt",0)
;Stockage du nom du poste de la ligne 4
$valnlook = StringRight(FileReadLine($filenl,4),StringLen(FileReadLine($filenl,4))-9)
;Fermeture du fichier nlook.txt
FileClose("c:\nlook.txt")
;Ecriture des valeurs IP, Nom et statut dans le fichier ipok.txt
FileWrite(@ScriptDir & "\ipok.txt",$valplage & $i & "," & $valnlook & ",OK" & @CRLF)
;Incrémentation du compteur Ok
$cptok = $cptok + 1
Pour explication :
J'ecris dans un fichier bat la commande permettant de lancer le nslookup de l'adresse ip et de stocker le résultat dans un fichier .txt
Je lis la 4ème ligne du fichier qui correspond au nom hostname
Ensuite j'écris le tout dans un fichier ipok.txt