VB编程问题:获取宽带IP。请教高手!

来源:百度知道 编辑:UC知道 时间:2024/06/02 10:04:06
我在设计一个程序,其中需要获取IP。我用WINSOCK控件获取到的都是网卡的IP,请问怎样才能获取到上网的真实IP?就是宽带连接的IP?请给个源码。(我从网上找了一些,都太长,而且看不懂...)
能不能给个简洁的代码?不要这么长的!最好能有注释,让我也学习一下...

没什么好注释的,既然有外网IP,那就访问外网的一个检测IP的网站吧,获得包含本机外网IP的网页源代码,进行分析,得到结果

Private Sub Command1_Click()
Dim h As Object, s As String
Set h = CreateObject("Microsoft.XMLHTTP")
h.Open "GET", "http://www.ip138.com/ip2city.asp", False
h.Send
If h.ReadyState = 4 Then s = StrConv(h.Responsebody, vbUnicode)
If InStr(s, "[") > 0 And InStr(s, "]") > 0 Then
MsgBox "外网IP地址为" & Split(Split(s, "[")(1), "]")(0)
Else
MsgBox "外网IP地址获取失败!"
End If
End Sub

直接的你已经查过了,我就告诉你个间接的,
用ie浏览器控件在后台访问ip138网站,然后读取网页源码,
里面就有一段是你的公网ip

'在窗体上加一个按钮控件Command1就可以了
Private Const MAX_IP = 255
Private Type IPINFO
dwAddr As Long
dwIndex As Long
dwMask As Long