User Tools

Site Tools


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

This is an old revision of the document!


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

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

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

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

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

Код решения.

<code javascript> 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);
 });
}

}); } <code>

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki