[英]Visual Basic: If IP equals “String”
這是我第一次編碼,請原諒我的無知。 我正在嘗試制作一個檢查我的IP的簡單程序,如果我的IP =“ My Real IP”,那么它將執行一個操作。 基本上,我想知道我的VPN何時出現故障,如果發生故障,它將采取某種任意措施。
Imports System.Net
Module Module1
Function GetIP() As String
Dim YourIP As New WebClient
Return YourIP.DownloadString("http://icanhazip.com/")
End Function
Sub Main()
Console.Write(GetIP)
If GetIP() = "XX.XXX.XXX.XX" Then
Console.WriteLine("Works")
End If
End Sub
End Module
我在這里找到了一個與我的問題完全相同的人,解決方案是DownloadString在字符串的末尾添加了“ / n”,您必須基本上
GetIP().Replace("/n", "")
刪除它,但是該解決方案對我不起作用。
嘗試這樣做,而不是檢查您的IP(可能會更改),而是像這樣Ping一個已知地址。
Module Module1
Sub Main()
Try
If My.Computer.Network.Ping("www.google.co.uk", 1000) Then
MsgBox("Server pinged successfully.")
Else
MsgBox("Ping request timed out.")
End If
Catch ex As Exception
MsgBox("Network is down.")
End Try
End Sub
End Module
希望有幫助.....
我運行了您的程序,發現盡管在控制台應用程序中,看起來GetIP生成的IP只是一個IP,但實際上它是最后帶有'&vbLf'標記的IP。 這意味着您的比較將始終失敗。
為了解決這個問題,請使用String.Replace從GetIP生成的字符串中刪除vbLf,如下所示:
If GetIP().Replace(vbLf, String.Empty) = "XX.XXX.XXX.XX" Then
Console.WriteLine("Works")
End If
僅供參考,我通過在GetIP()的結果中設置變量並在調試過程中檢查其內容來發現這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.