#Region AutoIt3Wrapper 预编译参数(常用参数)
#AutoIt3Wrapper_Icon= ;图标,支持EXE,DLL,ICO
#AutoIt3Wrapper_OutFile= ;输出文件名
#AutoIt3Wrapper_OutFile_Type=exe ;文件类型
#AutoIt3Wrapper_Compression=4 ;压缩等级
#AutoIt3Wrapper_UseUpx=y ;使用压缩
#AutoIt3Wrapper_Res_Comment= ;注释
#AutoIt3Wrapper_Res_Description= ;详细信息
#AutoIt3Wrapper_Res_Fileversion= ;文件版本
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p ;自动更新版本
#AutoIt3Wrapper_Res_LegalCopyright= ;版权
#AutoIt3Wrapper_Change2CUI=N ;修改输出的程序为CUI(控制台程序)
;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段
;#AutoIt3Wrapper_Run_Tidy= ;脚本整理
;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑
;#AutoIt3Wrapper_Run_AU3Check= ;语法检查
;#AutoIt3Wrapper_Run_Before= ;运行前
;#AutoIt3Wrapper_Run_After= ;运行后
#EndRegion AutoIt3Wrapper 预编译参数设置完成
#cs ____________________________________
Au3 版本: 3.3.6.1
脚本作者: wozijisunfly
Email:
QQ/TM: Test Dept.
脚本版本: v-0.1
脚本功能: 实现meter工具自动化脚本
#ce _______________脚本开始_________________
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiIPAddress.au3>
Opt('MustDeclareVars', 1)
Opt("GUICloseOnESC", 0)
Global $server_num=1,$client_num=1,$server[1000][8],$client[1000][16],$a_server[8],$a_client[16]
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-28
;~ 功能:检查文件是否存在于固定路径下
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _check_file($path)
Local $attr
If FileExists($path) Then
$attr = FileGetAttrib($path)
If StringInStr($attr,"N") Or StringInStr($attr,"C") Or StringInStr($attr,"O") Or StringInStr($attr,"A") Then
Return "yes"
Else
Return "no"
EndIf
Else
Return "no"
EndIf
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-28
;~ 功能:创建图形界面,方便操作
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _create_gui()
Local $gui,$server_btn,$client_btn,$msg,$execute_btn
$gui = GUICreate("Auto-Meter",400,200,Default,Default)
$server_btn = GUICtrlCreateButton("Server-Config",30,50,150,40)
GUICtrlSetFont(-1,12)
$client_btn = GUICtrlCreateButton("Client-Config",220,50,150,40)
GUICtrlSetFont(-1,12)
$execute_btn = GUICtrlCreateButton("Execute",120,120,150,40)
GUICtrlSetFont(-1,12)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $server_btn
GUISetStyle(BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOOLWINDOW),$gui)
GUICtrlSetState($server_btn,$GUI_DISABLE)
GUICtrlSetState($client_btn,$GUI_DISABLE)
GUICtrlSetState($execute_btn,$GUI_DISABLE)
_server_gui()
GUICtrlSetState($server_btn,$GUI_ENABLE)
GUICtrlSetState($client_btn,$GUI_ENABLE)
GUICtrlSetState($execute_btn,$GUI_ENABLE)
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU), 0)
Case $msg = $client_btn
GUISetStyle(BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOOLWINDOW), $gui)
GUICtrlSetState($server_btn,$GUI_DISABLE)
GUICtrlSetState($client_btn,$GUI_DISABLE)
GUICtrlSetState($execute_btn,$GUI_DISABLE)
_client_gui()
GUICtrlSetState($server_btn,$GUI_ENABLE)
GUICtrlSetState($client_btn,$GUI_ENABLE)
GUICtrlSetState($execute_btn,$GUI_ENABLE)
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU), 0)
Case $msg = $execute_btn
GUISetStyle(BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOOLWINDOW), $gui)
GUICtrlSetState($server_btn,$GUI_DISABLE)
GUICtrlSetState($client_btn,$GUI_DISABLE)
GUICtrlSetState($execute_btn,$GUI_DISABLE)
_execute_now()
GUICtrlSetState($server_btn,$GUI_ENABLE)
GUICtrlSetState($client_btn,$GUI_ENABLE)
GUICtrlSetState($execute_btn,$GUI_ENABLE)
GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU), 0)
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-29
;~ 功能:立刻执行Meter程序,进行收发判断
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _execute_now()
Local $mark1,$mark2="",$file,$line,$s_num = 1,$c_num = 1,$s[1000][8],$c[1000][16],$n,$i,$soc_cli
Dim $arr
If FileExists(@ScriptDir & "\___server.config") And FileExists(@ScriptDir & "\___client.config") Then
$file = FileOpen(@ScriptDir & "\___server.config", 0)
; 检查打开的文件是否可读
If $file = -1 Then
MsgBox(0, "ERROR", "不能打开" & @ScriptDir & "\___server.config文件。")
Exit
EndIf
; 每次读取一行文本,直到文件结束.
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringInStr($line,"<",1) == 1 And StringInStr($line,"</",1) <> 1 Then
$mark1 = $line
$mark2 = StringReplace($mark1,"<","</")
ContinueLoop
EndIf
If StringCompare($line,$mark2) == 0 Then
$mark2 = ""
$s_num = $s_num + 1
ContinueLoop
EndIf
$arr = StringSplit($line,"=>",1)
Switch $arr[1]
Case "meter_server"
$s[$s_num][0]=$arr[2]
Case "listen_port"
$s[$s_num][1]=$arr[2]
Case "simulate_client_ip"
$s[$s_num][2]=$arr[2]
Case "simulate_client_port"
$s[$s_num][3]=$arr[2]
Case "simulate_server_ip"
$s[$s_num][4]=$arr[2]
Case "simulate_server_port"
$s[$s_num][5]=$arr[2]
Case "sequence"
$s[$s_num][6]=$arr[2]
Case "pcapfile"
$s[$s_num][7]=$arr[2]
Case Else
MsgBox(0,"WRONG","无法识别的字符" & $arr[1])
EndSwitch
Wend
FileClose($file)
$file = FileOpen(@ScriptDir & "\___client.config", 0)
; 检查打开的文件是否可读
If $file = -1 Then
MsgBox(0, "ERROR", "不能打开" & @ScriptDir & "\___client.config文件。")
Exit
EndIf
; 每次读取一行文本,直到文件结束.
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
If StringInStr($line,"<",1) == 1 And StringInStr($line,"</",1) <> 1 Then
$mark1 = $line
$mark2 = StringReplace($mark1,"<","</")
ContinueLoop
EndIf
If StringCompare($line,$mark2) == 0 Then
$mark2 = ""
$c_num = $c_num + 1
ContinueLoop
EndIf
$arr = StringSplit($line,"=>",1)
Switch $arr[1]
Case "meter_client"
$c[$c_num][0]=$arr[2]
Case "socket_client"
$c[$c_num][1]=$arr[2]
Case "server_ip"
$c[$c_num][2]=$arr[2]
Case "server_port"
$c[$c_num][3]=$arr[2]
Case "listen_port"
$c[$c_num][4]=$arr[2]
Case "simulate_client_ip"
$c[$c_num][5]=$arr[2]
Case "simulate_client_port"
$c[$c_num][6]=$arr[2]
Case "simulate_server_ip"
$c[$c_num][7]=$arr[2]
Case "simulate_server_port"
$c[$c_num][8]=$arr[2]
Case "simulate_client_count"
$c[$c_num][9]=$arr[2]
Case "connect_per_sec"
$c[$c_num][10]=$arr[2]
Case "loop_count"
$c[$c_num][11]=$arr[2]
Case "sequence"
$c[$c_num][12]=$arr[2]
Case "think_time"
$c[$c_num][13]=$arr[2]
Case "run_time"
$c[$c_num][14]=$arr[2]
Case "pcapfile"
$c[$c_num][15]=$arr[2]
Case Else
MsgBox(0,"WRONG","无法识别的字符" & $arr[1])
EndSwitch
Wend
FileClose($file)
If $c_num > $s_num Then
$n = $s_num
If $n == 1 Then
MsgBox(0,"WRONG","没有配置Server-Config端,请配置。")
Return
EndIf
Else
$n = $c_num
If $n == 1 Then
MsgBox(0,"WRONG","没有配置Client-Config端,请配置。")
Return
EndIf
EndIf
For $i = 1 To $n - 1
$soc_cli = $c[$i][1] & " "& $c[$i][2] & "#" & $c[$i][3] & "#"
RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""echo yes > /home/yes.log""] 2", "", Default)
RunWait(@ComSpec & " /c " & $soc_cli & "copyfile[/home/yes.log,"& @ScriptDir &"\yes.log] 2", "", Default)
;~ MsgBox(0,"","123456789")
If Not FileExists(@ScriptDir & "\yes.log") Then
MsgBox(0,"WRONG","服务器端的Socket-Server服务器没有开启,请开启后执行。")
Return
EndIf
RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""rm -rf /home/yes.log""]", "", Default)
FileDelete(@ScriptDir & "\yes.log")
RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""rm -rf /home/__meter_server""]", "", Default)
RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""mkdir /home/__meter_server""]", "", Default)
RunWait(@ComSpec & " /c " & $soc_cli & "sendfile["& $s[$i][0] &",/home/__meter_server/meter_server]", "", Default)
RunWait(@ComSpec & " /c " & $soc_cli & "sendfile["& $s[$i][7] &",/home/__meter_server/meter_need.pcap]", "", Default)
RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""chmod 777 /home/__meter_server/*""]", "", Default)
Run(@ComSpec & " /c " & $soc_cli & "cmd[""cd /home/__meter_server;./meter_server "& $s[$i][1] & " " & $s[$i][2] & " " & $s[$i][3] & " " & $s[$i][4] & " " & $s[$i][5] & " " & $s[$i][6] & "" & " /home/__meter_server/meter_need.pcap &""]", "", Default)
RunWait(@ComSpec & " /c " & $c[$i][0] & " " & $c[$i][2] & " " & $c[$i][4] & " " & $c[$i][5] & " " & $c[$i][6] & " " & $c[$i][7] & " " & $c[$i][8] & " " & $c[$i][9] & " " & $c[$i][10] & " " & $c[$i][11] & " " & $c[$i][12] & " " & $c[$i][13] & " " & $c[$i][14] & " " & $c[$i][15] & " ", "", @SW_MAXIMIZE)
RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""kill `ps -ef | grep meter_server | grep -v grep | awk '{print $2}'`""]", "", Default)
;~ RunWait(@ComSpec & " /c " & $soc_cli & "cmd[""ps -ef | grep meter_server | grep -v grep | xargs kill""]", "", Default)
Next
Else
MsgBox(0,"WRONG","当前目录下缺少没有配置Server-Config或者Client-Config,程序无法正常执行。" & _
@CRLF & @CRLF & "请先配置后再执行。")
EndIf
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-28
;~ 功能:创建服务端的界面,对输入参数进行录入
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _server_gui()
Local $server_gui,$msg,$close_btn,$socket_server,$meter_server,$listen_port,$simulate_client_ip,$reset_btn
Local $simulate_client_port,$simulate_server_ip,$simulate_server_port,$sequence,$pcapfile,$submit_btn,$return
$server_gui = GUICreate("",500,480,Default,Default)
GUISetStyle(BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOOLWINDOW), $server_gui)
GUICtrlCreateLabel("Meter-Server-Path :",20,20,134,Default)
GUICtrlSetFont(-1,11)
$meter_server = GUICtrlCreateInput("",155,17,315,25)
GUICtrlSetFont(-1,12)
;~ GUICtrlCreateLabel("Socket-Server-Path:",20,50,130,Default)
;~ GUICtrlSetFont(-1,11)
;~ $socket_server = GUICtrlCreateInput("",155,47,315,25)
;~ GUICtrlSetFont(-1,12)
GUICtrlCreateLabel("Listen-Port:",155,80,100,Default)
GUICtrlSetBkColor(-1,"0x00ff00")
GUICtrlSetFont(-1,12)
$listen_port = GUICtrlCreateInput("",260,77,75,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Simulate_Client_IP:",20,140,150,Default)
GUICtrlSetFont(-1,12)
$simulate_client_ip = _GUICtrlIpAddress_Create($server_gui, 175, 138,145)
_GUICtrlIpAddress_SetFont($simulate_client_ip,Default,14)
GUICtrlCreateLabel("Port:",360,140,60,Default)
GUICtrlSetFont(-1,12)
$simulate_client_port = GUICtrlCreateInput("",410,138,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Simulate_Server_IP:",20,200,150,Default)
GUICtrlSetFont(-1,12)
$simulate_server_ip = _GUICtrlIpAddress_Create($server_gui, 175, 198,145)
_GUICtrlIpAddress_SetFont($simulate_server_ip,Default,14)
GUICtrlCreateLabel("Port:",360,200,60,Default)
GUICtrlSetFont(-1,12)
$simulate_server_port = GUICtrlCreateInput("",410,198,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Loop_Start_Sequence:",80,260,160,Default)
GUICtrlSetFont(-1,12)
$sequence = GUICtrlCreateInput("",250,257,150,25)
GUICtrlSetFont(-1,12)
GUICtrlCreateLabel("PcapFile :",20,320,100,Default)
GUICtrlSetFont(-1,12)
$pcapfile = GUICtrlCreateInput("",155,317,315,25)
GUICtrlSetFont(-1,12)
$submit_btn = GUICtrlCreateButton("Submit",200,400,70,30)
GUICtrlSetFont(-1,12)
$reset_btn = GUICtrlCreateButton("Reset",300,400,70,30)
GUICtrlSetFont(-1,12)
$close_btn = GUICtrlCreateButton("Close",400,400,70,30)
GUICtrlSetFont(-1,12)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $submit_btn
If StringCompare(_check_file(GUICtrlRead($meter_server)),"yes") == 0 Then
$a_server[0] = GUICtrlRead($meter_server)
ElseIf StringCompare(_check_file(GUICtrlRead($meter_server)),"no") == 0 Then
MsgBox(0,"WRONG","给定的Meter-Server-Path路径下,没有对应的文件,请确认")
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
If StringRegExp(GUICtrlRead($listen_port),"^[1-9][0-9]{0,}",0) Then
$a_server[1] = GUICtrlRead($listen_port)
Else
MsgBox(0,"WRONG","请对Listen-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringCompare(StringStripWS(_GUICtrlIpAddress_Get($simulate_client_ip),8),"0.0.0.0") == 0 Or StringLen(StringStripWS(_GUICtrlIpAddress_Get($simulate_client_ip),8)) == 7 Then
MsgBox(0,"WRONG","给出的Simulate-Client-IP不应为" & _GUICtrlIpAddress_Get($simulate_client_ip) & "请重置")
ContinueLoop
Else
$a_server[2] = StringStripWS(_GUICtrlIpAddress_Get($simulate_client_ip),8)
EndIf
If StringRegExp(GUICtrlRead($simulate_client_port),"^[1-9][0-9]{0,}",0) Then
$a_server[3] = GUICtrlRead($simulate_client_port)
Else
MsgBox(0,"WRONG","请对Simulate-Client-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringCompare(StringStripWS(_GUICtrlIpAddress_Get($simulate_server_ip),8),"0.0.0.0") == 0 Or StringLen(StringStripWS(_GUICtrlIpAddress_Get($simulate_server_ip),8)) == 7 Then
MsgBox(0,"WRONG","给出的Simulate-Server-IP不应为" & _GUICtrlIpAddress_Get($simulate_server_ip) & "请重置")
ContinueLoop
Else
$a_server[4] = StringStripWS(_GUICtrlIpAddress_Get($simulate_server_ip),8)
EndIf
If StringRegExp(GUICtrlRead($simulate_server_port),"^[1-9][0-9]{0,}",0) Then
$a_server[5] = GUICtrlRead($simulate_server_port)
Else
MsgBox(0,"WRONG","请对Simulate-Server-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($sequence),"^[1-9][0-9]{0,}",0) Then
$a_server[6] = GUICtrlRead($sequence)
Else
MsgBox(0,"WRONG","请对Loop_Start_Sequence输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringCompare(_check_file(GUICtrlRead($pcapfile)),"yes") == 0 Then
$a_server[7] = GUICtrlRead($pcapfile)
ElseIf StringCompare(_check_file(GUICtrlRead($pcapfile)),"no") == 0 Then
MsgBox(0,"WRONG","给定的PcapFile路径下,没有对应的文件,请确认")
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
If StringInStr(_check_server_parameter(),"-") Then
$return = MsgBox(33,"WARNING","检查到当前输入的值与第 " & _check_server_parameter() & _
" 次的值相同" & @CRLF & "请确认是否继续输入")
If $return == 1 Then
;~ Nothing
ElseIf $return == 2 Then
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
EndIf
;~ 写入配置数据
FileWriteLine(@ScriptDir & "\___server.config","<" & $server_num & ">")
FileWriteLine(@ScriptDir & "\___server.config","meter_server=>" & GUICtrlRead($meter_server))
FileWriteLine(@ScriptDir & "\___server.config","listen_port=>" & GUICtrlRead($listen_port))
FileWriteLine(@ScriptDir & "\___server.config","simulate_client_ip=>" & _GUICtrlIpAddress_Get($simulate_client_ip))
FileWriteLine(@ScriptDir & "\___server.config","simulate_client_port=>" & GUICtrlRead($simulate_client_port))
FileWriteLine(@ScriptDir & "\___server.config","simulate_server_ip=>" & _GUICtrlIpAddress_Get($simulate_server_ip))
FileWriteLine(@ScriptDir & "\___server.config","simulate_server_port=>" & GUICtrlRead($simulate_server_port))
FileWriteLine(@ScriptDir & "\___server.config","sequence=>" & GUICtrlRead($sequence))
FileWriteLine(@ScriptDir & "\___server.config","pcapfile=>" & GUICtrlRead($pcapfile))
FileWriteLine(@ScriptDir & "\___server.config","</" & $server_num & ">")
$server[$server_num][0]=GUICtrlRead($meter_server)
$server[$server_num][1]=GUICtrlRead($listen_port)
$server[$server_num][2]=_GUICtrlIpAddress_Get($simulate_client_ip)
$server[$server_num][3]=GUICtrlRead($simulate_client_port)
$server[$server_num][4]=_GUICtrlIpAddress_Get($simulate_server_ip)
$server[$server_num][5]=GUICtrlRead($simulate_server_port)
$server[$server_num][6]=GUICtrlRead($sequence)
$server[$server_num][7]=GUICtrlRead($pcapfile)
$server_num = $server_num + 1
;~ $server[$server_num][0]=
Case $msg = $reset_btn
GUICtrlSetData($meter_server,"")
GUICtrlSetData($listen_port,"")
_GUICtrlIpAddress_Destroy($simulate_client_ip)
$simulate_client_ip = _GUICtrlIpAddress_Create($server_gui, 175, 138,145)
_GUICtrlIpAddress_SetFont($simulate_client_ip,Default,14)
;~ _GUICtrlIpAddress_Set($simulate_client_ip,"...")
GUICtrlSetData($simulate_client_port,"")
_GUICtrlIpAddress_Destroy($simulate_server_ip)
$simulate_server_ip = _GUICtrlIpAddress_Create($server_gui, 175, 198,145)
_GUICtrlIpAddress_SetFont($simulate_server_ip,Default,14)
;~ _GUICtrlIpAddress_Set($simulate_server_ip,"...")
GUICtrlSetData($simulate_server_port,"")
GUICtrlSetData($sequence,"")
GUICtrlSetData($pcapfile,"")
Case $msg = $close_btn
ExitLoop
EndSelect
WEnd
GUIDelete($server_gui)
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-29
;~ 功能:检查server-config端输入的参数是否与之前输入的参数一致
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _check_server_parameter()
Local $i,$j,$num = 1,$str = ""
For $i = 1 To $server_num
For $j = 0 To 7
If StringCompare($a_server[$j],$server[$i][$j]) == 0 Then
$num = $num + 1
Else
ExitLoop
EndIf
Next
If $num == 9 Then
$str = $str & $i & " - "
EndIf
$num = 1
Next
Return "=>" & $str
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-29
;~ 功能:检查client-config端输入的参数是否与之前输入的参数一致
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _check_client_parameter()
Local $i,$j,$num = 1,$str = ""
For $i = 1 To $client_num
For $j = 0 To 15
If StringCompare($a_client[$j],$client[$i][$j]) == 0 Then
$num = $num + 1
Else
ExitLoop
EndIf
Next
If $num == 17 Then
$str = $str & $i & " - "
EndIf
$num = 1
Next
Return "=>" & $str
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-28
;~ 功能:创建客户端的界面,对输入参数进行录入
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _client_gui()
Local $client_gui,$meter_client,$socket_client,$listen_port,$simulate_client_ip,$msg,$close_btn,$submit_btn
Local $simulate_client_port,$simulate_server_ip,$simulate_server_port,$sequence,$pcapfile,$reset_btn,$return
Local $simulate_client_count,$connect_per_sec,$loop_count,$think_time,$run_time,$server_ip,$server_port
$client_gui = GUICreate("",500,600,Default,Default)
GUISetStyle(BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOOLWINDOW), $client_gui)
GUICtrlCreateLabel("Meter-Client-Path :",20,20,134,Default)
GUICtrlSetFont(-1,11)
$meter_client = GUICtrlCreateInput("",155,17,315,25)
GUICtrlSetFont(-1,12)
GUICtrlCreateLabel("Socket-Client-Path:",20,80,130,Default)
GUICtrlSetFont(-1,11)
$socket_client = GUICtrlCreateInput("",155,77,315,25)
GUICtrlSetFont(-1,12)
GUICtrlCreateLabel("Server_IP:",20,120,120,Default)
GUICtrlSetFont(-1,12)
$server_ip = _GUICtrlIpAddress_Create($client_gui, 155, 118,145)
_GUICtrlIpAddress_SetFont($server_ip,Default,14)
GUICtrlCreateLabel("Server-Port:",310,120,97,Default)
GUICtrlSetBkColor(-1, 0xFF0000)
GUICtrlSetFont(-1,12)
$server_port = GUICtrlCreateInput("",410,118,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Listen-Port:",155,160,100,Default)
GUICtrlSetBkColor(-1, 0x00ff00)
GUICtrlSetFont(-1,12)
$listen_port = GUICtrlCreateInput("",260,158,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Simulate_Client_IP:",20,200,150,Default)
GUICtrlSetFont(-1,12)
$simulate_client_ip = _GUICtrlIpAddress_Create($client_gui, 175, 198,145)
_GUICtrlIpAddress_SetFont($simulate_client_ip,Default,14)
GUICtrlCreateLabel("Port:",360,200,60,Default)
GUICtrlSetFont(-1,12)
$simulate_client_port = GUICtrlCreateInput("",410,198,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Simulate_Server_IP:",20,260,150,Default)
GUICtrlSetFont(-1,12)
$simulate_server_ip = _GUICtrlIpAddress_Create($client_gui, 175, 258,145)
_GUICtrlIpAddress_SetFont($simulate_server_ip,Default,14)
GUICtrlCreateLabel("Port:",360,260,60,Default)
GUICtrlSetFont(-1,12)
$simulate_server_port = GUICtrlCreateInput("",410,258,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Simulate_Client_Count:",20,320,175,Default)
GUICtrlSetFont(-1,12)
;这个值的范围待商榷
$simulate_client_count = GUICtrlCreateInput("",200,317,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Connect_Per_Sec:",270,320,130,Default)
GUICtrlSetFont(-1,12)
$connect_per_sec = GUICtrlCreateInput("",410,317,60,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Loop_Count:",20,380,85,Default)
GUICtrlSetFont(-1,12)
$loop_count = GUICtrlCreateInput("",110,377,50,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,5)
GUICtrlCreateLabel("Loop_Start_Sequence:",170,380,160,Default)
GUICtrlSetFont(-1,12)
$sequence = GUICtrlCreateInput("",340,377,130,25)
GUICtrlSetFont(-1,12)
GUICtrlCreateLabel("Think_Time(ms):",20,440,120,Default)
GUICtrlSetFont(-1,12)
$think_time = GUICtrlCreateInput("",170,437,50,25)
GUICtrlSetFont(-1,12)
GUICtrlSetLimit(-1,4)
GUICtrlCreateLabel("Run_Time(sec):",270,440,110,Default)
GUICtrlSetFont(-1,12)
$run_time = GUICtrlCreateInput("",410,437,60,25)
GUICtrlSetFont(-1,12)
GUICtrlCreateLabel("PcapFile :",20,500,100,Default)
GUICtrlSetFont(-1,12)
$pcapfile = GUICtrlCreateInput("",155,497,315,25)
GUICtrlSetFont(-1,12)
$submit_btn = GUICtrlCreateButton("Submit",200,540,70,30)
GUICtrlSetFont(-1,12)
$reset_btn = GUICtrlCreateButton("Reset",300,540,70,30)
GUICtrlSetFont(-1,12)
$close_btn = GUICtrlCreateButton("Close",400,540,70,30)
GUICtrlSetFont(-1,12)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $submit_btn
If StringCompare(_check_file(GUICtrlRead($meter_client)),"yes") == 0 Then
$a_client[0] = GUICtrlRead($meter_client)
ElseIf StringCompare(_check_file(GUICtrlRead($meter_client)),"no") == 0 Then
MsgBox(0,"WRONG","给定的Meter-Client-Path路径下,没有对应的文件,请确认")
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
If StringCompare(_check_file(GUICtrlRead($socket_client)),"yes") == 0 Then
$a_client[1] = GUICtrlRead($socket_client)
ElseIf StringCompare(_check_file(GUICtrlRead($socket_client)),"no") == 0 Then
MsgBox(0,"WRONG","给定的Socket-Client-Path路径下,没有对应的文件,请确认")
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
If StringCompare(StringStripWS(_GUICtrlIpAddress_Get($server_ip),8),"0.0.0.0") == 0 Or StringLen(StringStripWS(_GUICtrlIpAddress_Get($server_ip),8)) == 7 Then
MsgBox(0,"WRONG","给出的Server-IP不应为" & _GUICtrlIpAddress_Get($server_ip) & "请重置")
ContinueLoop
Else
$a_client[2] = StringStripWS(_GUICtrlIpAddress_Get($server_ip),8)
EndIf
If StringRegExp(GUICtrlRead($server_port),"^[1-9][0-9]{0,}",0) Then
$a_client[3] = GUICtrlRead($server_port)
Else
MsgBox(0,"WRONG","请对Server-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($listen_port),"^[1-9][0-9]{0,}",0) Then
$a_client[4] = GUICtrlRead($listen_port)
Else
MsgBox(0,"WRONG","请对Listen-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringCompare(StringStripWS(_GUICtrlIpAddress_Get($simulate_client_ip),8),"0.0.0.0") == 0 Or StringLen(StringStripWS(_GUICtrlIpAddress_Get($simulate_client_ip),8)) == 7 Then
MsgBox(0,"WRONG","给出的Simulate-Client-IP不应为" & _GUICtrlIpAddress_Get($simulate_client_ip) & "请重置")
ContinueLoop
Else
$a_client[5] = StringStripWS(_GUICtrlIpAddress_Get($simulate_client_ip),8)
EndIf
If StringRegExp(GUICtrlRead($simulate_client_port),"^[1-9][0-9]{0,}",0) Then
$a_client[6] = GUICtrlRead($simulate_client_port)
Else
MsgBox(0,"WRONG","请对Simulate-Client-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringCompare(StringStripWS(_GUICtrlIpAddress_Get($simulate_server_ip),8),"0.0.0.0") == 0 Or StringLen(StringStripWS(_GUICtrlIpAddress_Get($simulate_server_ip),8)) == 7 Then
MsgBox(0,"WRONG","给出的Simulate-Server-IP不应为" & _GUICtrlIpAddress_Get($simulate_server_ip) & "请重置")
ContinueLoop
Else
$a_client[7] = StringStripWS(_GUICtrlIpAddress_Get($simulate_server_ip),8)
EndIf
If StringRegExp(GUICtrlRead($simulate_server_port),"^[1-9][0-9]{0,}",0) Then
$a_client[8] = GUICtrlRead($simulate_server_port)
Else
MsgBox(0,"WRONG","请对Simulate-Server-Port输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($simulate_client_count),"^[1-9][0-9]{0,}",0) Then
$a_client[9] = GUICtrlRead($simulate_client_count)
Else
MsgBox(0,"WRONG","请对Simulate_Client_Count输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($connect_per_sec),"^[1-9][0-9]{0,}",0) Then
$a_client[10] = GUICtrlRead($connect_per_sec)
Else
MsgBox(0,"WRONG","请对Connect_Per_Sec输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($loop_count),"^[1-9][0-9]{0,}",0) Then
$a_client[11] = GUICtrlRead($loop_count)
Else
MsgBox(0,"WRONG","请对Loop_Count输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($sequence),"^[1-9][0-9]{0,}",0) Then
$a_client[12] = GUICtrlRead($sequence)
Else
MsgBox(0,"WRONG","请对Loop_Start_Sequence输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($think_time),"^[1-9][0-9]{0,}",0) Then
$a_client[13] = GUICtrlRead($think_time)
Else
MsgBox(0,"WRONG","请对Think_Time(ms)输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringRegExp(GUICtrlRead($run_time),"^[1-9][0-9]{0,}",0) Then
$a_client[14] = GUICtrlRead($run_time)
Else
MsgBox(0,"WRONG","请对Run_Time(sec)输入首字母不为0的数字。")
ContinueLoop
EndIf
If StringCompare(_check_file(GUICtrlRead($pcapfile)),"yes") == 0 Then
$a_client[15] = GUICtrlRead($pcapfile)
ElseIf StringCompare(_check_file(GUICtrlRead($pcapfile)),"no") == 0 Then
MsgBox(0,"WRONG","给定的PcapFile路径下,没有对应的文件,请确认")
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
If StringInStr(_check_client_parameter(),"-") Then
$return = MsgBox(33,"WARNING","检查到当前输入的值与第 " & _check_client_parameter() & _
" 次的值相同" & @CRLF & "请确认是否继续输入")
If $return == 1 Then
;~ Nothing
ElseIf $return == 2 Then
ContinueLoop
Else
MsgBox(0,"ERROR","机器已被病毒入侵,5秒后将关闭程序。",5)
Exit
EndIf
EndIf
;~ 写入配置数据
FileWriteLine(@ScriptDir & "\___client.config","<" & $client_num & ">")
FileWriteLine(@ScriptDir & "\___client.config","meter_client=>" & GUICtrlRead($meter_client))
FileWriteLine(@ScriptDir & "\___client.config","socket_client=>" & GUICtrlRead($socket_client))
FileWriteLine(@ScriptDir & "\___client.config","server_ip=>" & _GUICtrlIpAddress_Get($server_ip))
FileWriteLine(@ScriptDir & "\___client.config","server_port=>" & GUICtrlRead($server_port))
FileWriteLine(@ScriptDir & "\___client.config","listen_port=>" & GUICtrlRead($listen_port))
FileWriteLine(@ScriptDir & "\___client.config","simulate_client_ip=>" & _GUICtrlIpAddress_Get($simulate_client_ip))
FileWriteLine(@ScriptDir & "\___client.config","simulate_client_port=>" & GUICtrlRead($simulate_client_port))
FileWriteLine(@ScriptDir & "\___client.config","simulate_server_ip=>" & _GUICtrlIpAddress_Get($simulate_server_ip))
FileWriteLine(@ScriptDir & "\___client.config","simulate_server_port=>" & GUICtrlRead($simulate_server_port))
FileWriteLine(@ScriptDir & "\___client.config","simulate_client_count=>" & GUICtrlRead($simulate_client_count))
FileWriteLine(@ScriptDir & "\___client.config","connect_per_sec=>" & GUICtrlRead($connect_per_sec))
FileWriteLine(@ScriptDir & "\___client.config","loop_count=>" & GUICtrlRead($loop_count))
FileWriteLine(@ScriptDir & "\___client.config","sequence=>" & GUICtrlRead($sequence))
FileWriteLine(@ScriptDir & "\___client.config","think_time=>" & GUICtrlRead($think_time))
FileWriteLine(@ScriptDir & "\___client.config","run_time=>" & GUICtrlRead($run_time))
FileWriteLine(@ScriptDir & "\___client.config","pcapfile=>" & GUICtrlRead($pcapfile))
FileWriteLine(@ScriptDir & "\___client.config","</" & $client_num & ">")
$client[$client_num][0]=GUICtrlRead($meter_client)
$client[$client_num][1]=GUICtrlRead($socket_client)
$client[$client_num][2]=_GUICtrlIpAddress_Get($server_ip)
$client[$client_num][3]=GUICtrlRead($server_port)
$client[$client_num][4]=GUICtrlRead($listen_port)
$client[$client_num][5]=_GUICtrlIpAddress_Get($simulate_client_ip)
$client[$client_num][6]=GUICtrlRead($simulate_client_port)
$client[$client_num][7]=_GUICtrlIpAddress_Get($simulate_server_ip)
$client[$client_num][8]=GUICtrlRead($simulate_server_port)
$client[$client_num][9]=GUICtrlRead($simulate_client_count)
$client[$client_num][10]=GUICtrlRead($connect_per_sec)
$client[$client_num][11]=GUICtrlRead($loop_count)
$client[$client_num][12]=GUICtrlRead($sequence)
$client[$client_num][13]=GUICtrlRead($think_time)
$client[$client_num][14]=GUICtrlRead($run_time)
$client[$client_num][15]=GUICtrlRead($pcapfile)
$client_num = $client_num + 1
Case $msg = $reset_btn
GUICtrlSetData($meter_client,"")
GUICtrlSetData($socket_client,"")
_GUICtrlIpAddress_Destroy($server_ip)
$server_ip = _GUICtrlIpAddress_Create($client_gui, 155, 118,145)
_GUICtrlIpAddress_SetFont($server_ip,Default,14)
GUICtrlSetData($server_port,"")
GUICtrlSetData($listen_port,"")
_GUICtrlIpAddress_Destroy($simulate_client_ip)
$simulate_client_ip = _GUICtrlIpAddress_Create($client_gui, 175, 198,145)
_GUICtrlIpAddress_SetFont($simulate_client_ip,Default,14)
GUICtrlSetData($simulate_client_port,"")
_GUICtrlIpAddress_Destroy($simulate_server_ip)
$simulate_server_ip = _GUICtrlIpAddress_Create($client_gui, 175, 258,145)
_GUICtrlIpAddress_SetFont($simulate_server_ip,Default,14)
GUICtrlSetData($simulate_server_port,"")
GUICtrlSetData($simulate_client_count,"")
GUICtrlSetData($connect_per_sec,"")
GUICtrlSetData($loop_count,"")
GUICtrlSetData($sequence,"")
GUICtrlSetData($think_time,"")
GUICtrlSetData($run_time,"")
GUICtrlSetData($pcapfile,"")
Case $msg = $close_btn
ExitLoop
EndSelect
WEnd
GUIDelete($client_gui)
EndFunc
;~ 作者:wozijisunfly
;~ 创建时间:2014-09-28
;~ 功能:主运行程序
;~ 修改人:
;~ 修改内容:
;~ 修改时间:
Func _main()
_create_gui()
EndFunc
;~ 运行
_main()