【问题标题】:Visual Basic: If IP equals "String"Visual Basic:如果 IP 等于“字符串”
【发布时间】:2016-05-23 00:13:28
【问题描述】:

这是我第一次编码,请原谅我的无知。我正在尝试制作一个简单的程序来检查我的 IP,如果我的 IP =“我的真实 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", "") 

删除它,但该解决方案对我不起作用。

【问题讨论】:

  • 尝试“\n”而不是“/n”。
  • puu.sh/n4AU7/d426ed5685.png 没用,是的,我在发送之前将 IP 号码更改​​为 Xs。
  • 您能在调试器中查看Test 并查看其中的确切内容吗?
  • 对不起,我不知道怎么做 ;-;
  • 好的,我都检查了,它们都显示我的 IP,仅此而已,仅此而已

标签: vb.net ip webclient vpn


【解决方案1】:

试试这个,而不是检查你的 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

希望有所帮助.....

【讨论】:

    【解决方案2】:

    我运行了您的程序,发现虽然在控制台应用程序中,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() 的结果并在调试期间检查其内容来发现这一点。

    【讨论】:

    • 嘿,非常感谢。我最终使用了另一种方法来解决这个问题,String.Contains。但是,我确实尽可能地调试。我从 GetIP 做了 debug.print,将另一个 var 设置为 GetIP,我什至将 GetIP 导出到一个文本文件。一切都只是向我展示了 IP,没有额外的字母。我做错了什么,下次如何充分调试?再次非常感谢。我尽可能地调试。
    • 不用担心 - String.Contains 在大多数情况下都可以完成这项工作 - 如果您的 IP 非常接近您正在检查的 IP,则可能会出现问题,但我认为这不太可能。
    • 就调试而言,vbLf 是一个特殊字符,在使用 Debug.Print 时不会出现。我这样做的方法是在 Visual Studio 中以调试模式运行程序并手动跨过每一行,将鼠标悬停在我的变量上并在将其设置为 GetIP() 后检查它的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多