2012-03-10 6 views
0

Я искал об ip & место для моего сайта. Я хочу знать, где мой посетитель вошел на сайт. По его местоположению я сделаю некоторые записи, покажу сайт с другой темой и так далее.IP и информация о местоположении

Я использую Asp.Net, я бы не использовал ни поставщиков, ни инструментов. Я хочу сделать это самостоятельно. Как мне это сделать ? Что я должен искать?

+0

Вы сказали, что искали. Что ты нашел? Вы ищете 'IP GeoLocation'. –

+0

Да, я нашел, но я написал выше, я хочу, чтобы он был моим. Как предоставить сторонним сайтам эту информацию? Я не хочу, чтобы меня зависели от ipionfodb или таких, как! где они получают информацию? – icaptan

+1

Единственный способ сделать это без зависимости от третьей стороны - использовать возможности GeoLocation HTML5 и сделать это на стороне клиента. Это имеет ограничения в отношении поддержки браузера. Я думаю, вы также можете приобрести базу данных IP GeoLocation и интегрировать ее в свой сервер. – Mark

ответ

3

Вам необходимо использовать сторонний сервис или инструмент для сбора геоданных. Я предлагаю попробовать IPInfoDB, http://www.ipinfodb.com, который является бесплатной службой GeoLocation. После того, как вы зарегистрируетесь для получения ключа API вы можете потреблять услугу в C# следующим образом:

public static GeoLocation HostIpToPlaceName(string ip) 
    { 
     string url = "http://api.ipinfodb.com/v2/ip_query.php?key={enterAPIKeyHere}&ip={0}&timezone=false"; 
     url = String.Format(url, ip); 

     var result = XDocument.Load(url); 

     var location = (from x in result.Descendants("Response") 
         select new GeoLocation 
         { 
          City = (string)x.Element("City"), 
          Region = (string)x.Element("RegionName"), 
          CountryId = (string)x.Element("CountryName") 
         }).First(); 

     return location; 
    } 

Есть много услуг, которые предоставляют GeoLocation но IPInfoDB бесплатно и работает хорошо для меня.

Вы также можете собрать эту информацию на стороне клиента, используя HTML5, как показано на странице http://html5demos.com/geo. Конечно, если вы хотите использовать эту информацию в своем коде, вам нужно как-то передать ее на сервер.

+0

см. Мой комментарий выше на мой вопрос. Я хочу узнать, как они (ipinfodb или похожий сайт) получают данные о том, к какому местоположению принадлежит ip. – icaptan

+1

Такие услуги, как IpInfoDB, собирают эту информацию из различных служб. IP-адреса в разных регионах предоставляются различными органами. В Северной Америке IP-адреса предоставляются ARIN (American Registry for Internet Numbers). ARIN публикует свою базу данных публично, и ее можно найти на своем сайте, www.arin.net. Введите IP-адрес в поле поиска WHOIS, и вы увидите, кому это принадлежит. Эта информация используется в службах GeoLocation. – Mark

2

Концепция, о которой вы говорите, называется Geo Location. Суть его в том, что существуют базы данных, которые сопоставляют IP-адреса ISP и ISP с физическими местоположениями. Вот поиск Google, который я использовал.

geo locate ip address 

Эта страница была особенно интересной, поскольку она предлагала хорошую экспликацию и некоторые источники для бесплатных данных.

http://www.iplocation.net/

Good Luck.

+0

хороший сайт с информацией о благодарности. – icaptan

Смежные вопросы