从Google获取IP

时间:2016-02-21 17:48:20

标签: vb.net ip google-search

我在vb.net中编写了一个需要公共IP地址的应用程序,只需要纯文本格式。我知道有很多网站以文本格式为您提供IP。但总是有机会被关闭或停止服务。但谷歌永远不会停止!现在我想从谷歌搜索获取我的IP。例如,如果您搜索"我的IP"在谷歌它将带你的IP像这样: Sample of search 无论如何要从谷歌获得IP?

2 个答案:

答案 0 :(得分:1)

谢谢你们,但我找到了一条路: 首先导入一些名称空间:

Dim client As New WebClient
Dim To_Match As String = "<div class=""_h4c _rGd vk_h"">(.*)"
Dim recived As String = client.DownloadString("https://www.google.com/search?sclient=psy-ab&site=&source=hp&btnG=Search&q=my+ip")
Dim m As Match = Regex.Match(recived, To_Match)
Dim text_with_divs As String = m.Groups(1).Value
Dim finalize As String() = text_with_divs.Split("<")
Return finalize(0)

现在让我们写一个函数:

   class Car : Vehicle
{
    public string brand { get; set; }
    public string type { get; set; }
    public int maxSpeed { get; set; }
    public double price { get; set; }
    public static int carID { get; set; }



    public Car(string _brand, string _type, int _maxspeed, double _price)
    {
        this.brand = _brand;
        this.type = _type;
        this.maxSpeed = _maxspeed;
        this.price = _price;
        this.carID++;

    }
}

现在正在工作和生活!

答案 1 :(得分:1)

硬编码的Div类名称让我有点紧张,因为它们随时都可以轻易改变,所以,我稍微扩展了Hirod Behnam的例子。

我删除了Div类模式,将其替换为更简单的IP地址搜索,并且它将仅返回找到的第一个,对于此搜索,应该是页面上显示的第一个(您的外部IP)。

这也消除了将结果拆分为数组的需要,以及那些相关的变量。我还将Google搜索字符串简化为最低限度。

如果速度至关重要,那么分别为.DownloadString()和.Match()包含一两个超时仍然是一个不错的选择。

Private Function GetExternalIP() As String

Dim m As Match = Match.Empty

Try

    Dim wClient As New System.Net.WebClient
    Dim strURL As String = wClient.DownloadString("https://www.google.com/search?q=my+ip")
    Dim strPattern As String = "\b(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b"

    ' Look for the IP
     m = Regex.Match(strURL, strPattern)

Catch ex As Exception
    Debug.WriteLine(String.Format("GetExternalIP Error: {0}", ex.Message))
End Try

' Failed getting the IP
If m.Success = False Then Return "IP: N/A"

' Got the IP
Return m.value

End Function