[已解决]怎么样在不调用外部程序的情况快速切断本机互联网?
本帖最后由 luren666 于 2015-12-18 23:41 编辑自己想做一个C/S的程序,服务器控制客户机的互联网通断,客户机在接收到服务器的断开互联网指令后怎么样才能快速的切断互联网呢?目前使用的方法是route delete 0.0.0.0,删除默认路由,然后循环检测是否能PING能外部网站,有没有更好的方法来实现呢?最好是不调用外部程序,可以是调用DLL或写注册表或其它方法。最好是能像route.exe命令一样重启之后能自动恢复,不需要程序来干预。 本帖最后由 虫子樱桃 于 2015-12-18 11:22 编辑
根据外国网站代码改写,windows10 LTSB测试OK,若成功,请修改为已解决
$Obj = ObjCreate("Shell.Application")
$items = $Obj.Namespace(0x0031).Items
If IsObj($items) Then
For $item In $items
If $item.Name = 'Ethernet' Then;这里是要操作的网络名称
If StringInStr($item.Verbs.Item(0).Name, "&a") Then
;启用网络
$item.Verbs.Item(0).DoIt
MsgBox(0, '', '已经启用网络')
EndIf
If StringInStr($item.Verbs.Item(0).Name, "&b") Then
;禁用网络
$item.Verbs.Item(0).DoIt
MsgBox(0, '', '已经禁用网络')
EndIf
EndIf
Next
EndIf
当然,你ipconfig /release 再ipconfig /renew 下也可以的,但是前提是你的网络设置了MAC绑定上网~~,哈哈,否则有可能不奏效 谢谢楼上的,不过不是我想要的效果,试了一下,这个等于是禁用启动网卡,禁用网卡之后服务器就没办法控制客户机了,我要的只是断开互联网,并让局域网保持正常。 找到了几个API,GetIpForwardTableDeleteIpForwardEntryCreateIpForwardEntry,我自己尝试一下看看能不能成功吧。 自己尝试几次,没有调用成功,不过好在论坛里面P大早就写好了相关代码,被我翻出来了。http://www.autoitx.com/forum.php?mod=viewthread&tid=26092&extra=&page=1 直接改操作系统路由表或者路由器路由表。 把 DNS 改成不存在的IP就不完事了
页:
[1]