Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > KAK UZNAT STRANU?


Автор: Гость_Alik 17.6.2004, 16:52
kak uznatx stranu visitora s pomoshu PHP???

Автор: scriptcoder 17.6.2004, 17:18
Я где-то скачал базу ip адресов. Не помню где. Поищи в Yandexe.
Там же и либа пхпэшная есть. И Город примерно узнается как
$city = get_region ($_SERVER['REMOTE_ADDR']);
Добавлено @ 17:21
А вот нашел URL: http://www.techinfo.net.ru/ip2ruscity/
И вот как я узнаю рагион:

$ip = $_SERVER['REMOTE_ADDR'];
function get_city_region_by_ip ($ip) {
require_once ('ip2ruscity_lib.php');
$r = ip2ruscity_seek_city($ip);
if ($r[0] != 1) {
$echo = "Регион не определен";
}
else {
$echo = "{$ip2rusCities[$r[1][0]]}({$ip2rusRegions[$r[1][1]]})";
}
return $echo;
}
Добавлено @ 17:22
Ну это только по России. А базу IP по странам я так нигде найти и не смог
Добавлено @ 17:23
найти
Добавлено @ 17:23
Если кто знает где ее взять, пж-та сообщите. Мне бы она тоже пригодилась

Автор: Secandr 17.6.2004, 18:18
Ещё можно whois вызывать(програмка в юниксе/линуксе).

Автор: IZ@TOP 18.6.2004, 10:09
Цитата
echo $_SERVER['HTTP_ACCEPT_LANGUAGE']


biggrin.gif Но это имхо используемый в системе язык biggrin.gif

Автор: Secandr 18.6.2004, 10:29
IZ@TOP У меня дефолтовый en стоит.

Оптимальный вариант whois. Точнее ни кто не определит. Там открытым текстом написан адрес конторы, которой пренадлежит ip.

Автор: IZ@TOP 18.6.2004, 11:02
Secandr
Ну мое дело предложить. А на счет whois я с тобой полностью согласен.

Автор: Guest 22.6.2004, 09:59
a kak ispolzovat_ whois???

Автор: Secandr 22.6.2004, 10:56
в командной строке пишишь whois 213.90.132.23, а он тебе выдаёт информацию.

Соответствено из php можно вызвать
Код
exec("whois 213.90.132.23", $out);
И разбирать $out

Автор: MuToGeN 22.6.2004, 11:45
...только запускать это, естественно, не под виндой

Автор: IZ@TOP 22.6.2004, 12:00
MuToGeN
А под виндой что запускать?

Автор: Secandr 22.6.2004, 12:48
IZ@TOP
А часто веб сервера под виндой стоят? biggrin.gif
можно ещё у стороннего сайта спросить: http://www.ripe.net/perl/whois

Автор: Ignat 22.6.2004, 13:30
Цитата
А часто веб сервера под виндой стоят?


Они часто под виндой лежат smile.gif

Автор: Secandr 22.6.2004, 14:00
Ignat Не будем разводить флейм о приимуществе Windows перед Unix, а вернёмся к теме: "Как узнать страну поситителя".

Автор: Ignat 22.6.2004, 14:44
Secandr, sorry, наболело за три последних дня.

А к вопросу как узнать страну:
здесь лежит http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip, в CSV - остаётся залить в мускуль, полученный ip адрес перевести в ipNumber (в базе они так хранятся), формула http://ip-to-country.webhosting.info/node/view/261 и... наслаждайтесь.

Автор: Secandr 22.6.2004, 15:12
Ignat Проблема в том, что эту базу нужно постоянно пополнять. Сетки раздаются ежедневно.

Автор: Ignat 22.6.2004, 15:17
Дык начиналось с чего?
scriptcoder сказал, не найдет ли кто базу?
Вот база.
whois, конечно, вариант который обновлять не надо, но что будет работать быстрее - мускуль или ху из-сервис?
Причем база свежая (относительно) 08 июня сего года, они там постоянно обновляются.

Автор: Secandr 22.6.2004, 15:53
Ignat
Моих IP там нет smile.gif

Согласен. Если нужно определять страну на лету - пользуйся готовой базой. Если не хочешь занимать место в мускуле и проверки не часто идут, пользуйся whois и кешируй запросы в мускуле smile.gif

Автор: Ignat 22.6.2004, 17:01
Цитата
Моих IP там нет smile.gif

И не лень тебе было проверять smile.gif
А кэширование - это мысль.
Если совсем достоверная инфа нужна и не жалко место в базе, то можно совместить базу и whois, то бишь ежель в базе нет, то whois и инсертим в базу.

Автор: Secandr 22.6.2004, 17:03
Ignat я не проверял, просто они зарегистрированы на днях.

Добавлено @ 17:08
Кстати действительно классная идея:
берём существующую базу.
Загоняем в mysql, добавляем поле - дата последнего обновления и пользуемся.
При запросе проверяем есть ли дата в БД. Если есть - берём из БД, если нет делаем whois и заносим в базу.

Кроном вешаем скрипт и каждый день ночью в 4:00 обновляем 1% самых старых записей.

В итоге получаем базу которая с большой точностью и скоростью будет отражать страну и город.

Автор: Ignat 22.6.2004, 17:15
Цитата
Ignat я не проверял, просто они зарегистрированы на днях.

Проверь - зайди по http://ip-to-country.webhosting.info, если скажут Россия, то есть ты в базе, они пользуются той же. Хотя возможно, что у них этот тандем база-whois уже реализован.

А вот город не получится на имеющейся базе, там городов нет, только страны sad.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)