Code : Tout sélectionner
#include <guiconstants.au3>
$PortScanner = GUICreate("Infinitex0's Port Scanner", 300, 175)
GUICtrlCreateGroup("Port Scan", 5, 5, 275, 160)
$IPLabel = GUICtrlCreateLabel("IP", 20, 17)
$PortIPAddress = GUICtrlCreateInput("127.0.0.1", 20, 33, 125)
GUICtrlCreateLabel("Start on Port", 20, 55)
$PortStartNumber = GUICtrlCreateInput("1", 20, 68, 125)
GUICtrlCreateLabel("End on Port", 20, 91)
$PortEndNumber = GUICtrlCreateInput("30", 20, 108, 125)
$StartScan = GUICtrlCreateButton("Start", 20, 135, 125)
GUICtrlSetFont($StartScan,15)
$OnPort = GUICtrlCreateLabel("Scanning Port:None", 150, 142)
GUICtrlCreateGroup("Open Ports", 160, 17,105, 125)
$OpenPortList=GUICtrlCreateList("", 168, 30, 90, 109)
GUICtrlCreateGroup ("",-99,-99,1,1)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_ClOSE
ExitLoop
Case $msg = $StartScan
_StartScan()
EndSelect
WEnd
Opt("TCPTimeout",10)
Func _StartScan()
$PortIP=GUICtrlRead($PortIPAddress)
$PortEndNumberB=guictrlread($PortEndNumber)
$PortStartNumberB=guictrlread($PortStartNumber)
;TCPStartup()
UDPStartUp()
$timerstart = TimerInit()
For $LetsGo = $PortStartNumberB To $PortEndNumberB
;$socket = TCPConnect($PortIP,$PortStartNumberB)
$socket = UDPOpen($PortIP,$PortStartNumberB)
ControlSetText("", "", $OnPort, "Scanning Port:" & $PortStartNumberB & "")
;If $socket = -1 Then
If $socket[0] = 0 Then
$PortStartNumberB = $PortStartNumberB + 1
Else
;GUICtrlSetData($OpenPortList,$PortStartNumberB)
GUICtrlSetData($OpenPortList,$PortStartNumberB & ":0:" & $socket[0])
GUICtrlSetData($OpenPortList,$PortStartNumberB & ":1:" & $socket[1])
GUICtrlSetData($OpenPortList,$PortStartNumberB & ":2:" & $socket[2])
GUICtrlSetData($OpenPortList,$PortStartNumberB & ":3:" & $socket[3])
$status = UDPSend($socket, "Message #")
If $status <> 0 then
GUICtrlSetData($OpenPortList,$PortStartNumberB & ":4:OK")
EndIf
UDPCloseSocket($socket)
$PortStartNumberB = $PortStartNumberB + 1
EndIf
Next
;TCPShutdown()
UDPShutdown()
$timerend = TimerDiff($timerstart)
TrayTip("Port Scanner", "Done Process took " & Round($timerend,-1)/1000 & " seconds", 7, 1)
EndFunc