[Ex] Ping une plage d'adresse ip
Posté : jeu. 31 mars 2011 07:42
par supernana66
Attention je débute avec ce type de language, alors ce script donc est pas parfait mais je suis ouverte a tous commentaires.
Cet outil me permettra de scanner mon réseau pour identifier les stations ou je peux opérer.
A prévoir un bouton arrêt pour stopper un scan en cours ??, l'interface n'est pas top mais juste pour l'exemple.
N'ayant pas trouvé la fonction adaptée à l'utilitaire que j'élabore, ( utilitaire fait pour automatiser une grande partie des taches d'un administrateur) je me suis lancé, et voilà le résultat.
Amusez vous bien V.
Cet outil me permettra de scanner mon réseau pour identifier les stations ou je peux opérer.
A prévoir un bouton arrêt pour stopper un scan en cours ??, l'interface n'est pas top mais juste pour l'exemple.
► Afficher le texte
Code : Tout sélectionner
; By Supernana66
#include <Array.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GuiIPAddress.au3>
#include <GUIConstants.au3>
#Include <date.au3>
#Include <GuiListView.au3>
#include <GuiImageList.au3>
#include <EditConstants.au3>
dim $add_ip_deb[4], $add_ip_fin[4], $ip_total[255][4]
local $fin_plage, $deb_plage, $Liste, $rso, $stop
global $octet3_ip_deb, $octet4_ip_deb, $octet3_ip_fin, $octet4_ip_fin
$win = GUICreate("Paramètre IP", 550, 400)
GUICtrlCreateGroup("Plages d'adresse ip",30, 40, 250, 150,$WS_DLGFRAME,$DS_SETFOREGROUND )
GUICtrlCreateLabel("debut ",50 ,80, 50, 25)
$deb_plage= _GUICtrlIpAddress_Create($win,100, 80, 150, 20)
GUICtrlCreateLabel("fin ", 50, 120, 50, 25)
$fin_plage = _GUICtrlIpAddress_Create($win, 100, 120, 150, 20)
$btn = GUICtrlCreateButton("ok", 140, 160, 25, 25)
$Liste = GUICtrlCreateListview(" Reponse ", 300, 30, 220, 340)
$stop = GUICtrlCreateButton("Stop", 140, 320, 40, 25)
_GUICtrlListView_SetColumnWidth($Liste, 0, 210)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$rso = GUICtrlCreateLabel("réseau ?? ",50 ,250, 180, 25)
GUICtrlSetFont(-1, 12, 500, "italic" , "arial" )
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
ExitLoop
EndIf
$add_ip_deb = StringSplit(_GUICtrlIpAddress_Get ($deb_plage),".")
$add_ip_fin = StringSplit(_GUICtrlIpAddress_Get ($fin_plage),".")
$octet3_ip_deb = $add_ip_deb[3]
$octet4_ip_deb = $add_ip_deb[4]
$octet3_ip_fin = $add_ip_fin[3]
$octet4_ip_fin = $add_ip_fin[4]
Select
Case $msg = $btn
ping_rso()
EndSelect
Wend
func ping_rso()
if $add_ip_fin[3] - $add_ip_deb[3] = 0 Then
GUICtrlSetData($rso,"reseau de classe C")
for $i = $add_ip_deb[4] to $add_ip_fin[4]
$ip = $add_ip_deb[1]&"."&$add_ip_deb[2]&"."&$add_ip_deb[3]&"."&$i
If Ping ($ip) Then
_GUICtrlListView_AddItem($Liste, $ip &" " & "--> ping ok")
Else
_GUICtrlListView_AddItem($Liste, $ip &" " & "--> no ping ")
EndIf
next
MsgBox(0, "FIN", "FIN ")
else
gUICtrlSetData($rso,"reseau de classe B")
for $i = $add_ip_deb[3] to $add_ip_fin[3]
if $i <> $add_ip_fin[3] Then
for $k = $add_ip_deb[4] to 254
$ip = $add_ip_deb[1]&"."&$add_ip_deb[2]&"."&$i&"."&$k
If Ping ($ip) Then
_GUICtrlListView_AddItem($Liste, $ip &" " & "--> ping ok")
Else
_GUICtrlListView_AddItem($Liste, $ip &" " & "--> Pas joignable !! ")
EndIf
next
Else
for $i = $add_ip_deb[4] to $add_ip_fin[4]
$ip = $add_ip_deb[1]&"."&$add_ip_deb[2]&"."&$add_ip_deb[3]&"."&$i
If Ping ($ip) Then
_GUICtrlListView_AddItem($Liste, $ip &" " & "--> ping ok")
Else
_GUICtrlListView_AddItem($Liste, $ip &" " & "--> Pas joignable !! ")
EndIf
next
EndIf
next
MsgBox(0, "FIN", "FIN ")
EndIf
EndFunc
Amusez vous bien V.