User Tools

Site Tools


wiki:blog:геолокация_ip_адресов_и_злобные_хостеры

Геолокация IP адресов и злобные хостеры

Случилось однажды такое, что мне надо было прикрутить к сайту определение региона (области/субъекта РФ/тд.) по IP. Первое что пришло в голову - это воспользоваться уже имеющимся сервисом. После некоторых поисков я остановился на этом замечательном сайте http://ipgeobase.ru/

У них имеются 2 реализации. http://blog.ipgeobase.ru/?p=37 http://blog.ipgeobase.ru/?p=76

Вроде всё просто, Курлом, отправляем адрес, получаем результат, все довольны. Но после часа-полутора возни выяснилось что на хостинге где живёт нужный сайт, провайтер по каким-то причинам запретил Curl'ом ходить по нестандартным портам (а сервисы ipgeobase у нас висят на 8090 и 7020).

Практически моментально отказавшись от использования всяких прокси, было решено сделать всё на стороне клиента, (а что серверу и так нелегко, ещё и ответ курловый ждать =) ). А чтобы не дёргать по пустякам сервис, результат сохраняется в куках на неделю.

Код решения.

	function get_region(){
 //get_cookie - не стандартная функция и не часть jquery =) при отсутствии нужной куки возвращает null
 var region = get_cookie('region');
 if (region !== null) {
  //делаем свои важные дела
  set_region(region);
 }
 //ip нам услужливо печатает сервер.
 var ip = $("#ip").val();
 $.ajax({
  type: "GET",
  url: "http://ipgeobase.ru:7020/geo?ip="+ip,
  dataType: "xml",
  success: function(xml) {
   $(xml).find('ip').each(function(){
    var reg = $(this).find('region').text();
    //делаем свои важные дела
    set_region(reg);
   });
  }
 });
}

original url: http://blog.c0f3.net/2013/08/ip.html

wiki/blog/геолокация_ip_адресов_и_злобные_хостеры.txt · Last modified: 2019/01/05 12:27 by kpc