Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: myName
Script Function:
Template AutoIt script.
#ce ----------------------------------------------------------------------------
; Script Start - Add your code below here
#RequireAdmin
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
$Form1 = GUICreate("Test de ports", 417, 293, 192, 120)
Global $ListView1 = GUICtrlCreateListView("Port|Statut", 112, 0, 300, 289)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 200)
$Button1 = GUICtrlCreateButton("Informations", 8, 32, 89, 49)
$Button2 = GUICtrlCreateButton("Commencer", 8, 96, 89, 49)
$Button3 = GUICtrlCreateButton("Test ""connect""", 8, 160, 89, 49)
GUISetState(@SW_SHOW)
Global $IP = @IPAddress1, $firstPort = 1, $lastPort = 1023, $file = @ScriptDir & "\log.ini", $received = False, $socket, $nbrErreur = 0, $nbrSucces = 0, $testType = "connecting"
For $i = $firstPort To $lastPort Step 1
GUICtrlCreateListViewItem("Port n°" & $i & "|" & "Non testé.",$ListView1)
Next
TCPStartup()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
TCPShutdown()
Exit
Case $Button1
MsgBox(64,"Informations","Ce programme a été créé par mes soins et va tester les ports les plus utilisés par les applications courantes, comme les navigateurs webs, application de tchat ou autre. Il est important que tout ce genre d'application soit fermée, afin de donner des résultats fiables à ce test. Le logiciel va créer des 'sockets' d'écoute sur les différents ports. Si la création n'a pas marché, cela veut dire que celui-ci est obstrué par une application ou autre. Tu pourras voir un fichier 'log.ini' se créer sur ton bureau, ceci est tout à fait normal, tu devras me l'envoyer pour que je puisse voir ce qu'il en ai. En ce qui te concèrne, tu as une interface graphique qui te tiendra au courant.")
Case $Button2
If $testType = "connecting" Then _ConnectingTest()
If $testType = "listening" Then _ListeningTest()
Case $Button3
If $testType = "connecting" Then
$testType = "listening"
GUICtrlSetData($Button3,"Test ""listen""")
ElseIf $testType = "listening" Then
$testType = "connecting"
GUICtrlSetData($Button3,"Test ""connect""")
EndIf
EndSwitch
WEnd
Func _ListeningTest()
ToolTip("Le test a commencé",5,0)
_GUICtrlListView_DeleteAllItems($ListView1)
For $i = $firstPort To $lastPort Step 1
$MainSocket = TCPListen($IP,$i)
If $MainSocket = -1 Then
$error = @error
$nbrErreur += 1
GUICtrlCreateListViewItem("Port n°" & $i & "|" & " Le port est obstrué, échec de la création du socket.",$ListView1)
IniWrite($file,"Test" & $i,"echec",$error)
IniWrite($file,"Stats","erreurs",$nbrErreur)
Else
$nbrSucces += 1
GUICtrlCreateListViewItem("Port n°" & $i & "|" & " Le port est libre, création du socket réussite !",$ListView1)
IniWrite($file,"Test" & $i,"réussite","1")
IniWrite($file,"Stats","réussites",$nbrSucces)
TCPCloseSocket($MainSocket)
EndIf
Next
ToolTip("Le test est terminé :" & @CRLF & "Erreurs : " & $nbrErreur & @CRLF & "Succès : " & $nbrSucces,5,0)
EndFunc
Func _ConnectingTest()
ToolTip("Le test a commencé",5,0)
_GUICtrlListView_DeleteAllItems($ListView1)
For $i = $firstPort To $lastPort Step 1
$MainSocket = TCPConnect($IP,$i)
If $MainSocket = -1 Then
$error = @error
$nbrErreur += 1
GUICtrlCreateListViewItem("Port n°" & $i & "|" & " Le port est obstrué, échec de la création du socket.",$ListView1)
IniWrite($file,"Test" & $i,"echec",$error)
IniWrite($file,"Stats","erreurs",$nbrErreur)
Else
$nbrSucces += 1
GUICtrlCreateListViewItem("Port n°" & $i & "|" & " Le port est libre, création du socket réussite !",$ListView1)
IniWrite($file,"Test" & $i,"réussite","1")
IniWrite($file,"Stats","réussites",$nbrSucces)
TCPCloseSocket($MainSocket)
EndIf
Next
ToolTip("Le test est terminé :" & @CRLF & "Erreurs : " & $nbrErreur & @CRLF & "Succès : " & $nbrSucces,5,0)
EndFunc