【发布时间】:2016-12-18 20:35:36
【问题描述】:
我想编写一个检查我的 ip 的函数。如果我的 ip 是22.161.121.238 或检查给了Exception,它会休眠当前线程并再次开始检查。
代码如下:
Private Sub CheckIp()
Dim ip As String
Dim mine As String = "22.161.121.238"
Try
Do
Using wc As New Net.WebClient
ip = System.Text.Encoding.UTF8.GetString(wc.DownloadData("http://tools.feron.it/php/ip.php"))
End Using
If String.Equals(ip, mine) Then
MessageBox.Show("2")
Threading.Thread.Sleep(10000)
Else
MessageBox.Show("@" & ip & "@ is not equal to @" & mine & "@")
End If
End If
Loop While ip = "22.161.121.238"
Catch ex As Exception
Threading.Thread.Sleep(10000)
CheckIp()
End Try
End Sub
我不知道为什么它不显示来自MessageBox 的“2”。即使ip 和mine 相同,它也不会启动Show 方法。你能告诉我为什么吗?
编辑
启动按钮后我得到的是(我添加了@ 以查看字符串的开始位置):
【问题讨论】:
-
您如何确定
ip和mine相同?我猜他们实际上不是。 -
您或许应该考虑使用
IpAddress分类,它不会神奇地解决问题,但可以缓解问题(并且是一种更强大的做事方式 -
sstan,你不要像我一样启动 Visual Studio,复制代码并测试值,你的假设是完全错误的。
-
我应该早点这样做,但我在第一篇文章中添加了一个 gif。