PKriyshnA Ответов: 5

как я могу отслеживать данные о местоположении пользователя, отслеживая ip-адрес?


я хочу получить пользовательский

IP-адрес,
город,
государство,
страна,
долгота и
широта

при входе на мой сайт,

тогда как я могу получить эти данные?...

пожалуйста, помогите мне...

нужен источник....
спасибо!

PKriyshnA

я получил ip-адрес, используя

string visitorIpAddress = строка.Пустой;
если (объект HttpContext.Тока.Запрос.ServerVariables ["HTTP_X_FORWARDED_FOR"] ! = null)
{
visitorIpAddress = свойство HttpContext.Тока.Запрос.ServerVariables ["HTTP_X_FORWARDED_FOR"].Метод toString();
lblIp.Text = visitorIpAddress;
}
еще
{
visitorIpAddress = свойство HttpContext.Тока.Запрос ["REMOTE_ADDR"];
lblIp.Text = visitorIpAddress;
}

PKriyshnA

помогите кому-нибудь, пожалуйста.....

PKriyshnA

я получаю ключ api и могу получить информацию на веб-странице iplocators

в

OK;; 27.121.105.12; AU; АВСТРАЛИЯ;НОВЫЙ ЮЖНЫЙ УЭЛЬС;ПИРМОНТ;-;-33.869;151.194;+10:00

формат

с помощью

http://api.ipinfodb.com/v3/ip-city/?key=&ИС=27.121.105.12

но как я могу имплицировать свою веб-страницу?...
но как я могу читать данные и хранить их в своей метке

PKriyshnA

как я могу читать данные с этой веб-страницы и хранить их в одной переменной,

пожалуйста помочь....

5 Ответов

Рейтинг:
32

OriginalGriff

Ты не можешь. Нет никакой внутренней корреляции между IP-адресом и физическим местоположением клиента.

Лучшее, что вы можете получить, - это географическое местоположение зарегистрированного поставщика IP-адреса. Это, как правило, решает город, но это может быть несколько сотен миль от фактического местоположения клиента.

Тем не менее, это возможно, но большинство поставщиков будут стоить вам денег. Гугл[^] И я предлагаю вам сначала проверить, так как качество информации сильно варьируется. (Мой IP-адрес разрешен примерно в 25 милях от некоторых, "неизвестный город" - на других.)


Espen Harlinn

5 ЕД!

Рейтинг:
22

Dalek Dave

Воспользуйся HostIp.Info[^] и получить Geo API.
Или используйте любой из доступных веб-сервисов.


Этот[^] может помочь.


Espen Harlinn

5 ЕД!

Michael Gr

Я использую HostIP с MySQL.
Вам нужно будет загрузить их базу данных IP-адресов, а затем время от времени обновлять ее: http://www.hostip.info/dl/index.html
Их API также довольно прост: http://www.hostip.info/use.html

Рейтинг:
19

Mukund Thakker

Ip - это интернет-протокол для связи между узлами.
Ip-адрес используется для идентификации хоста и адреса местоположения. Если нам нужно идентифицировать пользователя
кто все заходят на наш сайт и хранят ip-адрес в нашей базе данных очень просто и очень просто.
Это способ отслеживать ip-адрес пользователя. Принести IP-адрес клиента, как только он открыть наш веб-сайт в asp.net.
Некоторые из них могут использовать прокси-ip-адрес. Но мы можем получить их ip-адрес с помощью этого простого кода.

Добавьте следующее пространство имен на страницу
использование System.Net;

string ipAddress ="";

//Get the Host Name
string hostName = Dns.GetHostName();
//Get The Ip Host Entry
IPHostEntry ipHostEntry = Dns.GetHostEntry(hostName);
//Get The Ip Address From The Ip Host Entry Address List
IPAddress[] ipAddress = ipHostEntry.AddressList;
ipAddress = ipAddress[ipAddress.Length - 1].ToString();


Чтобы получить геолокацию IP-адреса, вы можете использовать различные API, которые дадут вам результат в различных форматах(csv,xml)
http://www.ipinfodb.com/ip_location_api.php

Вы можете получить информацию о геолокации от
http://api.ipinfodb.com/v2/ip_query.php?key=<your_api_key>&ip=74.125.45.100&timezone=false

Ответ приходит в формате XML. используя XML deserialize, я десериализую ответ.
[XmlRootAttribute(ElementName = "Response", IsNullable = false)]
public class IPLocator
{

private string longitude;
public string Longitude
{
get { return longitude; }
set { longitude = value; }
}

private string latitude;
public string Latitude
{
get { return latitude; }
set { latitude = value; }
}

private string zip;
public string Zip
{
get { return zip; }
set { zip = value; }
}

private string ip;
public string IP
{
get { return ip; }
set { ip = value; }
}
}

После десериализации класс IPLocater связывает все свойства запрашиваемого IP-адреса.

Класс привязки-это возвращаемый класс IPLocater.


Код класса IPDetals
public IPLocator GetData(string ipAddress)
    {
        IPLocator ipLoc = new IPLocator();
        try
        {
            //apiKey can be generated from below link
            //http://www.ipinfodb.com/ip_location_api.php
            string apiKey = "anykey";

            string path = "http://api.ipinfodb.com/v2/ip_query.php?key=" + apiKey + "&ip=" + ipAddress + "&timezone=false";
            WebClient client = new WebClient();
            string[] eResult = client.DownloadString(path).ToString().Split(',');
            if (eResult.Length > 0)
                ipLoc = (IPLocator)Deserialize(eResult[0].ToString());
        }
        catch
        { }
        return ipLoc;
    }


//Desrialize XML String

private Object Deserialize(String pXmlizedString)
{
XmlSerializer xs = new XmlSerializer(typeof(IPLocator));
MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
return xs.Deserialize(memoryStream);
}

//String to UTF8ByteArray
private Byte[] StringToUTF8ByteArray(String pXmlString)
{
UTF8Encoding encoding = new UTF8Encoding();
Byte[] byteArray = encoding.GetBytes(pXmlString);
return byteArray;
}
}


//You can get the Geolocation infoamation here
string ipAddress = HttpContext.Current.Request.UserHostAddress;
IPDetails ipDetails=new IPDetails ();
IPLocator ipLocater = ipDetails.GetData(ipAddress);
Response.Write(ipLocater.CountryName);


PKriyshnA

я получаю ключ api и могу получить информацию на веб-странице iplocators

в

OK;; 27.121.105.12; AU; АВСТРАЛИЯ;НОВЫЙ ЮЖНЫЙ УЭЛЬС;ПИРМОНТ;-;-33.869;151.194;+10:00

формат

с помощью

http://api.ipinfodb.com/v3/ip-city/?key=<my_key&ГТ;&амп;ИС=27.121.105.12

но как я могу имплицировать свою веб-страницу?...

PKriyshnA

как я могу настроить ....

до сих пор не получил решения...надеюсь, вы поможете

Mukund Thakker

Просто напишите следующий код на своей веб-странице. Он предоставит вам запрошенную информацию.

//Вы можете получить информацию о геолокации здесь
строку IP-адрес = объект HttpContext.Тока.Запрос.UserHostAddress;
IPDetails ipDetails=новые IPDetails ();
IPLocator ipLocater = ipDetails.GetData(IP-адрес);
Ответ.Напишите (ipLocater.CountryName);

Рейтинг:
11

fjdiewornncalwe

На самом деле вы не проявляете большой инициативы в решении своей собственной проблемы, но я не оставлю вас полностью на холоде.
Сделайте поиск на основе "C# how to get location from ip address" и проверьте результаты. Поскольку вы просто хотите, чтобы кто-то сбросил код для вас, я даже не собираюсь связывать поиск, как обычно.


Espen Harlinn

5 ЕД!

Slacker007

Не слишком хороший ответ, Маркус. Отвечай на вопрос или проходи, не читай лекций.

fjdiewornncalwe

На большинство вопросов такого рода я бы на самом деле просто дал ОП правильный поисковый запрос и ссылку на результаты без какой-либо лекции, но в данном случае это повторяющаяся тема с этой ОП, поэтому, конечно, из-за разочарования, я ответил так, как есть. Вы имеете на это полное право, и я, конечно же, не возражаю против понижения голоса и по этому поводу. Овации.

Рейтинг:
0

Lakamraju Raghuram

Я согласен с Маркусом и чтобы немного помочь оператору вот одна ссылка:

http://www.mycsharpcorner.com/Post.aspx?postID=27[^]


Lakamraju Raghuram

А также это может помочь

http://www.dotnetcurry.com/ShowArticle.aspx?ID=325

Lakamraju Raghuram

ха! только что узнал, что этот вопрос дублируется, и приведенная выше ссылка уже предоставлена "далеком Дейвом".

Espen Harlinn

5 ЕД!