Foxtable(狐表)用户栏目专家坐堂 → 如何获取本机的IP地址


  共有9671人关注过本帖树形打印复制链接

主题:如何获取本机的IP地址

帅哥哟,离线,有人找我吗?
jianyuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:1324 威望:0 精华:0 注册:2011/9/7 15:58:00
如何获取本机的IP地址  发帖心情 Post By:2012/10/12 8:59:00 [只看该作者]

请教一下,用代码如何获取本机的IP地址?说明书上没有这方面的说明。

 回到顶部
帅哥哟,离线,有人找我吗?
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/10/12 9:03:00 [只看该作者]

Dim HostName As String = System.Net.Dns.GetHostName
Dim LocalIPAddress As System.Net.IPAddress = System.Net.Dns.GetHostByName(HostName).AddressList.GetValue(0)

Msgbox(LocalIPAddress)


 回到顶部
帅哥哟,离线,有人找我吗?
jianyuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:125 积分:1324 威望:0 精华:0 注册:2011/9/7 15:58:00
  发帖心情 Post By:2012/10/12 14:18:00 [只看该作者]

谢谢飞!但代码只能显示本机的局域网的IP地址,是否可能显示公网的IP。

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/10/12 15:30:00 [只看该作者]

以下是引用jianyuan在2012-10-12 14:18:00的发言:
谢谢飞!但代码只能显示本机的局域网的IP地址,是否可能显示公网的IP。

只能是访问一次外网才知道。下面是简单例子。

Dim web As New System.Windows.Forms.WebBrowser()
web.Navigate("http://city.ip138.com/city.asp")
Do Until web.ReadyState = 4
    Application.DoEvents
Loop

Dim elems As System.Windows.Forms.HtmlElementCollection
Elems = web.Document.GetElementsByTagName("Body")   '根据标签得到数据集合
Dim data As String = elems(0).InnerText
Dim start As Integer = data.IndexOf("[") + 1
Dim en As Integer = data.IndexOf("]")
msgbox(data.SubString(start, en - start))
[此贴子已经被作者于2012-11-22 11:09:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:732 积分:5491 威望:0 精华:14 注册:2011/8/28 12:49:00
  发帖心情 Post By:2012/10/12 17:37:00 [只看该作者]

'我用的疼迅的网页,同时获取IP与归属地,返回值格式为:IP|归属地

 

On Error Resume Next
Dim httpURL As New System.Uri("http://ip.qq.com/")
Dim httpReq As System.Net.HttpWebRequest = System.Net.WebRequest.Create(httpURL)
httpReq.Method = "GET"
Dim httpResp As System.Net.HttpWebResponse = httpReq.GetResponse()
httpReq.KeepAlive = False
Dim reader As New IO.StreamReader(httpResp.GetResponseStream, System.Text.Encoding.GetEncoding(-0))
Dim respHTML As String = reader.ReadToEnd()

With CreateObject("vbscript.regexp")
    .Global = True
    .MultiLine = True
    .ignorecase = True
    .Pattern = "当前的IP为.*?\<.*?\>([^<>]+)[\s\S]*?IP所在地为.*?\<.*?\>([^<>]+)"
    If .test(respHTML) Then
        With .Execute(respHTML)(0)
            Return Replace(.submatches(0) & "|" & .submatches(1), "&nbsp;", " ")
        End With
    End If
End With
Return


 回到顶部