Получить местоположение IP-адреса из приложения Windows - PullRequest
3 голосов
/ 08 апреля 2011

Я видел много вопросов и ответов на stackoverflow относительно как получить геолокацию IP-адреса в asp.net , но ..

Как мне получитьрасположение IP-адреса в winforms ?

Я работаю над приложением C # winform , и мне нужно показать пользователю, его ip address и Его местонахождение .Я могу показать локальный, внешний IP-адрес пользователя, но не смог найти способ показать местоположение.

Кто-нибудь знает, могу ли я сделать это с любым WebRequest или любым другим решением?

Редактировать: Я могу выполнить задачу следующим способом.

  1. Отправить IP-адрес сайта, который показывает местоположение с IP-адреса. (Например, www.whatismyipaddress.com)

  2. извлечение исходного кода.

  3. синтаксический анализ его кода и использование операций string для определения местоположения.

Но я знаю, что это не очень хороший подход, если веб-сайт не работает или перемещен, или любое изменение в исходном коде сделает мой код бесполезным.

Ответы [ 3 ]

4 голосов
/ 08 апреля 2011

Вы можете использовать База данных геолокации IP-адресов

1 голос
/ 26 июля 2012

IpInfo - хороший сервис для вещей, связанных с IP. У них также есть хороший API .

В приведенном ниже коде я сделаю веб-запрос к этой службе, и он вернет информацию об 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"}

0 голосов
/ 08 января 2015

Наслаждайтесь

For querying GeoIP information about your own IP:
http://ip-json.rhcloud.com/json
http://ip-json.rhcloud.com/xml
http://ip-json.rhcloud.com/csv
For querying GeoIP information about IP address:
http://ip-json.rhcloud.com/json/64.27.57.24
http://ip-json.rhcloud.com/xml/64.27.57.24
http://ip-json.rhcloud.com/csv/64.27.57.24
For querying GeoIP information about a domain:
http://ip-json.rhcloud.com/json/www.google.com
http://ip-json.rhcloud.com/xml/www.google.com
http://ip-json.rhcloud.com/csv/www.google.com
You can use curl command in terminal:
curl ip-json.rhcloud.com
curl ip-json.rhcloud.com/ua
curl ip-json.rhcloud.com/all
curl ip-json.rhcloud.com/json
curl ip-json.rhcloud.com/xml
...