求救写入IP的命令详解!!!
在论坛上我看到两种写入IP的方式。第一种是:
$colItems = ""
$objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
Dim $SetIPAddress
$SetIPAddress = IniRead($dir, $SectionNames, "IP地址", "")
Dim $SetSubnetmask
$SetSubnetmask = IniRead($dir, $SectionNames, "子网掩码", "")
Dim $SetGateway
$SetGateway = IniRead($dir, $SectionNames, "网关地址", "")
Dim $SetDns
$SetDns = IniRead($dir, $SectionNames, "首选DNS", "")
$SetDns = IniRead($dir, $SectionNames, "备用DNS", "")
TrayTip("", "正在设置IP,请稍等...", 1)
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "WQL", 0x10 + 0x20)
$colComputers = $objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
If IsObj($colItems) Then
For $objNetAdapter In $colItems
$objNetAdapter.EnableStatic($SetIPAddress, $SetSubnetmask)
$objNetAdapter.SetGateways($SetGateway)
$objNetAdapter.SetDNSServerSearchOrder($SetDns)
Next
EndIf
$ComputerName = IniRead($dir, $SectionNames, "计算机名称", "")
$SetIPX = IniRead($dir, $SectionNames, "内部网络号IPX", "")
$SetIPX = Dec($SetIPX)
$ServIP = IniRead($dir, $SectionNames, "网维服务器IP", "")
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName", "ComputerName", "REG_SZ", $ComputerName)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName", "REG_SZ", $ComputerName)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters", "NV Hostname", "REG_SZ", $ComputerName)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters", "Hostname", "REG_SZ", $ComputerName)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters", "VirtualNetworkNumber", "REG_DWORD", $SetIPX)
RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Nwlnkipx\Parameters", "VirtualNetworkNumber", "REG_DWORD", $SetIPX)
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\iCafe8", "ServIP", "REG_SZ", $ServIP)
Exit
第二种是:(写入IP、掩码、网关部分)
RunWait(@ComSpec & ' /c netsh -c interface ip set address "本地连接" static ' & $xrip & ' 255.255.255.0 ' & $xrwg & ' 1', "", @SW_HIDE)
两种方法都试用过了,第一种感觉太复杂,很多命令都不懂原理,有时候会生效;第二种看起来简单,好像是(呵呵,好像是)使用的命令行吧,但是其中的“掩码”部分:一是不是能用变量,用变量代入同样的值都出错,二是其值只是能"255.255.255.0",若改为"255.255.255.69"也出错。
不知道哪位大侠能腾出宝贵的时间对这两种写入IP的方法的原理予以详解,不胜感激!
[ 本帖最后由 ahphsautoit 于 2009-4-7 14:45 编辑 ] 1.WMI的加注册表的还是第一次见到,你参考下 ACN_NET.AU3里面的设置
2.学习下子网掩码,可以带入变量。
3.BS ICAFE
回复 2# thesnow 的帖子
感谢二楼的管理员朋友的回答!但是我想说明的是:
1、你的回答就像是一个70岁的老中共党员对一个7岁的少年儿童道:“要深入学习实践科学发展观,要有创新精神,。。。。。。”,呵呵!
2、听说过很多次“WMI”了,不明究里。从您的回答中似乎领悟到:我所列的第一种方法就是使用的“WMI”。只能领悟到这了。
3、最后感言:加强学习最重要了!论坛就是我们的数码乐园,学习、学习再学习,总有一天,菜鸟也会飞得高的! 1.让您参考下\UserInclude\ACN_NET.au3 中的 _WMI_SetNetworkAdapterInfo 函数
2.如果使用命令行方式,里面也有函数。如果子网掩码能对应到您的IP中,也是可以带入子网掩码的。
3.两个函数都有了,我还能怎么说呀。看不懂就只能去一句一句理解了。
4.命令行方式的你可以在运行下面输入netsh并回车,了解下。这个命令还是很强大的。
5.叫学习叫的最凶的,一般都是三分钟。如果要学习。基本都是默默的。
6.可以使用汉化版本中带的WMI浏览器熟悉下WMI,这个也是一个非常强大的东西。
7.很少讲实例,大多讲原理和道理。有现成例子会直接给例子。不好意思。
回复 4# thesnow 的帖子
感谢指引!话不多说了,“默默”地学习去了!:face (31): 注意,wmi的依赖多个服务.包括dns;netman;wmi还是直接写注册表吧 1、你的回答就像是一个70岁的老中共党员对一个7岁的少年儿童道:“要深入学习实践科学发展观,要有创新精神,。。。。。。”,呵呵!
2、听说过很多次“WMI”了,不明究里。从您的回答中似乎领悟到:我所列的第一种方法就是使用的“WMI”。只能领悟到这了。
3、最后感言:加强学习最重要了!论坛就是我们的数码乐园,学习、学习再学习,总有一天,菜鸟也会飞得高的!
1.看楼主一楼的提问:复杂的你看不懂,简单的你又觉得不够好,代码是用来学习用来解决问题的
引用犹太人常说的一句话:大孩子大问题,小孩子小问题。
既然自己觉得自己是7岁小孩子,那就乖乖学习ABC先学会爬再学飞吧
2.脑袋是长在你自己的脖子上的,没人可以帮你领悟
3.不懂得方法的学习也会可能成为长翅膀但飞不高的母鸡 找不到ACN_NET.au3 启用DOS命令也可以 做到吧
页:
[1]