以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何获取本机的公网IP  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133325)

--  作者:sky-18
--  发布时间:2019/4/12 9:19:00
--  如何获取本机的公网IP
如题,如何获取本机的IP地址呢?
本机作为服务器使用,每次IP变化都要去百度查IP。有没有办法能自动获取本机的公网IP呢?

--  作者:sky-18
--  发布时间:2019/4/12 11:08:00
--  
自己顶上去。老师们指点一下。。。。
--  作者:ruan
--  发布时间:2019/4/12 11:17:00
--  
Dim httpURL As New System.Uri("http://2019.ip138.com/ic.asp")
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()


Dim wip As String  \'\'外网IP
Dim qy As String   \'.IP所属区域

Dim mc = System.Text.RegularExpressions.Regex.Matches(respHTML , "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+")
If mc.count > 0 Then
    wip = mc(0).value
    Dim ss As String = respHTML.SubString(respHTML.IndexOf("来自")+3)
    qy = ss.SubString(0,ss.IndexOf("<"))
End If
 


--  作者:有点甜
--  发布时间:2019/4/12 13:06:00
--  

你可以用比如花生壳之类的,固定你的ip地址(也就是用域名)。

 

直接获取,参考

 

Dim httpURL As New System.Uri("http://2019.ip138.com/ic.asp")
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()

 


Dim wip As String  \'\'外网IP
Dim qy As String   \'.IP所属区域


Dim mc = System.Text.RegularExpressions.Regex.Matches(respHTML , "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+")
If mc.count > 0 Then
    wip = mc(0).value
    Dim ss As String = respHTML.SubString(respHTML.IndexOf("来自")+3)
    qy = ss.SubString(0,ss.IndexOf("<"))
End If

msgbox(wip)
 


--  作者:sky-18
--  发布时间:2019/4/12 13:58:00
--  

谢谢老师们,,感激不尽


--  作者:sky-18
--  发布时间:2019/5/12 7:36:00
--  
以下是引用有点甜在2019/4/12 13:06:00的发言:

你可以用比如花生壳之类的,固定你的ip地址(也就是用域名)。

 

直接获取,参考

 

Dim httpURL As New System.Uri("http://2019.ip138.com/ic.asp")
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()

 


Dim wip As String  \'\'外网IP
Dim qy As String   \'.IP所属区域


Dim mc = System.Text.RegularExpressions.Regex.Matches(respHTML , "[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+")
If mc.count > 0 Then
    wip = mc(0).value
    Dim ss As String = respHTML.SubString(respHTML.IndexOf("来自")+3)
    qy = ss.SubString(0,ss.IndexOf("<"))
End If

msgbox(wip)
 

我要在计划里设置上面代码的任务,好让项目按规定的时间间隔自动获取并生成ip地址。问题来了。一旦出现断网的情况以上代码会弹出错误提示。怎样能自动判断是否断网,以避免错误提示的出现呢?


--  作者:有点甜
--  发布时间:2019/5/12 22:04:00
--  

方法一:加入判断代码,如

 

http://www.foxtable.com/webhelp/scr/2709.htm

 

方法二:加入try catch

 

http://www.foxtable.com/webhelp/scr/2709.htm

 


--  作者:浙江仔
--  发布时间:2019/5/13 8:20:00
--  
以下是引用sky-18在2019/4/12 9:19:00的发言:
如题,如何获取本机的IP地址呢?
本机作为服务器使用,每次IP变化都要去百度查IP。有没有办法能自动获取本机的公网IP呢?

你这个问题使用动态域名,采用域名方式连接网络比较好