簡體   English   中英

Visual Basic:如果IP等於“字符串”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM