arp循环绑定要怎么设置
单绑定的代码是:RunWait(@ComSpec & " /c " & " ARP -S 192.168.0.107 "& $mac &"", "", @SW_HIDE)
要怎么设置可以过一秒钟就绑定一次知道程序结束为止
本网站搜索的ARP 循环绑定好像不行啊 while 1
RunWait(@ComSpec & " /c " & " ARP -S 192.168.0.251 00-00-00-00-00-00", "", @SW_HIDE)
Sleep(500)
wend
运行的时候进程一直在增加,有什么办法没有
[ 本帖最后由 ynqjflying52 于 2009-1-26 01:51 编辑 ] AdlibEnable ( "arp" , 1000)
Func arp()
RunWait(@ComSpec & " /c " & " ARP -S 192.168.0.251 00-00-00-00-00-00", "", @SW_HIDE)
EndFunc
怎么还是不行啊进程都看不到 这样的循环绑定有必要么?浪费系统资源。
一般情况下路由中全绑,客户机在开机时绑重要服务器、路由之类的IPMAC和自己的IPMAC一次就好了吧,再多的防护靠局域网监测了,不是你这样循环绑就好的,而且这样绑下去,对一些对CPU占用很敏感的程序就会表现得很糟糕,比如某些FPS游戏
试试这个,XP下测试通过的。。
If Not FileExists(@ScriptDir&"\Config.ini") ThenIniWrite(@ScriptDir&"\Config.ini", "配置", "IP", "")
IniWrite(@ScriptDir&"\Config.ini", "配置", "MAC", "")
EndIf
$ip = IniRead(@ScriptDir&"\Config.ini", "配置", "IP", "")
$mac = IniRead(@ScriptDir&"\Config.ini", "配置", "MAC", "")
If $ip = "" Or $mac = "" Then
MsgBox(32, "提示", "请填写好配置文件后再试~")
Else
While 1
_RunDOS("arp -s "& $ip &" "& $mac)
Sleep(1000)
_ReduceMemory(@AutoItPID)
WEnd
EndIf
Func _ReduceMemory($i_PID = -1);<==释放内存函数
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle)
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle)
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return
EndFunc
Func _RunDOS($sCommand)
Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
Return SetError(@error, @extended, $nResult)
EndFunc ;==>_RunDOS
页:
[1]