ynqjflying52 发表于 2009-1-26 00:52:35

arp循环绑定要怎么设置

单绑定的代码是:
RunWait(@ComSpec & " /c " & " ARP -S 192.168.0.107 "& $mac &"", "", @SW_HIDE)
要怎么设置可以过一秒钟就绑定一次知道程序结束为止
本网站搜索的ARP 循环绑定好像不行啊

ynqjflying52 发表于 2009-1-26 01:14:47

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 编辑 ]

sxd 发表于 2009-1-26 07:25:24

AdlibEnable ( "arp" , 1000)

Func arp()
RunWait(@ComSpec & " /c " & " ARP -S 192.168.0.251 00-00-00-00-00-00", "", @SW_HIDE)
EndFunc

ynqjflying52 发表于 2009-1-26 11:32:10

怎么还是不行啊进程都看不到

KiwiCsj 发表于 2009-1-27 17:47:37

这样的循环绑定有必要么?浪费系统资源。
一般情况下路由中全绑,客户机在开机时绑重要服务器、路由之类的IPMAC和自己的IPMAC一次就好了吧,再多的防护靠局域网监测了,不是你这样循环绑就好的,而且这样绑下去,对一些对CPU占用很敏感的程序就会表现得很糟糕,比如某些FPS游戏

范统.贾 发表于 2009-1-28 11:08:37

试试这个,XP下测试通过的。。

If Not FileExists(@ScriptDir&"\Config.ini") Then
        IniWrite(@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]
查看完整版本: arp循环绑定要怎么设置