从windows应用程序获取IP地址位置

本文关键字:地址 位置 IP 获取 windows 应用程序 | 更新日期: 2023-09-27 17:49:40

我在stackoverflow上看到了关于如何在asp.net中获取IP地址的地理位置的许多问题和答案,但是..

如何获取winforms中的IP地址位置?

我正在研究 c# winform应用程序,我需要向用户显示其ip地址其位置。我能够显示用户的本地,外部IP地址,但我找不到任何方法来显示位置。

有人知道我是否可以用任何WebRequest或任何其他解决方案做到这一点吗?

编辑:我可以通过以下方法完成任务。

  1. 发送IP地址到显示IP地址位置的站点(例如:www.whatismyipaddress.com)

  2. 获取源代码

  3. 解析其代码并使用string操作获得位置。

但我知道这不是一个好方法,如果网站是下降或移动或任何改变源代码将使我的代码无用。

从windows应用程序获取IP地址位置

可以使用IP地址地理定位数据库

IpInfo是一个很好的IP相关的服务。他们也有一个很好的API。

在下面的代码中,我将向这个服务发出一个web请求,它将返回IP信息。

这将返回你的IP信息:

public static string GetLocation(string ip)
{
    var res = "";
    WebRequest request = WebRequest.Create("http://ipinfo.io/" + ip);
    using (WebResponse response = request.GetResponse())
    using (StreamReader stream = new StreamReader(response.GetResponseStream()))
    {
        string line;
        while ((line = stream.ReadLine()) != null)
        {
            res += line;
        }
    }
    return res;
}
Console.WriteLine (GetLocation("8.8.8.8"));

这将输出:

{ "ip": "8.8.8.8", "hostname": "No Hostname", "city": "Mountain View", "region": "California", "country": "US", "loc": "37.3860,-122.0838", "org": "AS15169 Google Inc.", "postal": "94035"}