请问有谁知道如何在VB中编程实现固定IP与自动IP获取的转换?

来源:百度知道 编辑:UC知道 时间:2024/05/19 11:39:09
我编写的程序要实现局域网和因特网连接的转换,局域网需要固定IP,因特网要自动获取IP,固定IP我实现了,请问如何实现自动获取IP?

希望哪位高手可以提供些思路或者源码

(我是希望知道在VB内部的实现方法,比如使用API,而不是用VB调用批处理或者DLL的方法,谢谢)
非常感谢 yoya0303的回答,你的程序让我受益匪浅,在固定IP的转化中我是用的就是WMI,不过可能是我描述问题不够详细,你实现了在VB中从DHCP获取IP地址,我的本意是用VB将“本地连接”中的TCP/IP属性从指定IP和DNS的选项改为自动获取。我想是不是要用到rundll32或者注册表操作了?

再次感谢 yoya0303

这个WMI是MS的例子 其实objAdapter.IPAddress(i)数组里 返回是本机IP地址集合
里面的IP不管是DHCP得的 或 手动指定的都有
你可以从网段区分内外 别的方法就是读注册表
好象这个比较麻烦
得遍例HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces里的所有子项寻找你要找的

如果你的系统是XP可以使用WMI
代码如下
其中的代码是可以返回所有IP配置信息 但你要本机IP部分 所以我就注释掉了

程序取到的IP在objAdapter.IPAddress(i)数组里
当然有你要的外网IP和内网IP 你只需按需要做下区分就可以了

Private Sub Command1_Click()
' Returning IP Configuration Data
' WMI script that returns configuration data similar to that returned by IpConfig.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colAdapters = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
n = 1
'WScript.Echo
For Each objAdapter In colAdapters
'WScript.Echo "Network Ada