我们可以利用一些网络上现有的网络服务来获得当前本机连接外网的IP地址。使用非常方便,但是有一个缺点,那就是返回的结果取决于别人提供的服务,如果哪天依赖的外部提供IP查询的网络服务停止了之后,我们的代码就会失效了。使用此代码请注意评估风险,经常验证获取结果。
Vb.Net |
Dim strIP As String = NetHelp.NetGet("http://pv.sohu.com/cityjson") Dim regex = New System.Text.RegularExpressions.Regex("(\d+\.\d+\.\d+\.\d+)") Dim match = regex.Match(strIP) If match.Success Then Dim ip = match.Groups(0).Value Proj.MsgDebug.Add(ip) End If |
C# |
string strIP=NetHelp.NetGet("http://pv.sohu.com/cityjson"); var regex = new System.Text.RegularExpressions.Regex(@"(\d+\.\d+\.\d+\.\d+)"); var match = regex.Match(strIP); if (match.Success) { var ip = match.Groups[0].Value; Proj.MsgDebug.Add(ip); } |
如果想做成一个自定义函数,可以考虑
Vb.Net |
If Proj.Vars("NetIpAddress") IsNot Nothing Then Return Proj.Vars("NetIpAddress").ToString() Else Dim strIP As String = NetHelp.NetGet("http://pv.sohu.com/cityjson") Dim regex = New System.Text.RegularExpressions.Regex("(\d+\.\d+\.\d+\.\d+)") Dim match = regex.Match(strIP) If match.Success Then Dim ip = match.Groups(0).Value Proj.Vars("NetIpAddress") = ip Return ip End If Return "" End If |
C# |
|