Forum Webscript.Ru

Программирование => PHP => Тема начата: ilya_shipilov от 08 Декабря 2002, 17:24:02

Название: Как по IP адресу узнать город посетителя?
Отправлено: ilya_shipilov от 08 Декабря 2002, 17:24:02
...
Название: Как по IP адресу узнать город посетителя?
Отправлено: Mog. от 08 Декабря 2002, 17:44:56
http://www.ripn.net:8080/nic/whois/index.html
Название: Как по IP адресу узнать город посетителя?
Отправлено: Stas от 08 Декабря 2002, 18:07:43
poprobui posmotret\' zdes\'
http://www.visualroute.com
Название: Как по IP адресу узнать город посетителя?
Отправлено: Tronyx от 08 Декабря 2002, 19:00:23
Цитировать
poprobui posmotret\' zdes\'
http://www.visualroute.com

Немного не подходит.;)

Цитировать
http://www.ripn.net:8080/nic/whois/index.html

Один недостаток - максимум 12 обращений в минуту. Думаю лучше напрямую через http://www.ripe.net/perl/whois (whois.ripe.net), у них кажется ограничений нет (я вчера начал писать такую же "штуку", лазил по их серверу и информации об ограничениях не нашёл).
А кто как достаёт из ответа сервера город?
Название: Как по IP адресу узнать город посетителя?
Отправлено: Stas от 08 Декабря 2002, 19:21:16
ahh... tak emu eto nado iz scripta ?

ia dumal tak,prosto dlia sebia.. ;)

tol\'ko ia somnevaius\' chto mozhno s ripe poluchit\' vsegda 100% info.

v kontse kontsov, "adress" vvedennyi MNT, mozhet byt nepravil\'nyi ili ne tochnyi. V liubom sluchae, adres napisan dol\'ko dlia "person" ili dlia Autonomous System "role".
Название: Как по IP адресу узнать город посетителя?
Отправлено: Stas от 08 Декабря 2002, 19:23:57
i mozhet byt\' 1 ili 5 strochek "address"..
Nu i kak uznat\' kakaia iz nih soderzhit gorod..

A kak uznat\' esli Maintainer (MNT), deistvitel\'no zhivet v tome zhe gorode gde i set\' ?
Название: Как по IP адресу узнать город посетителя?
Отправлено: Tronyx от 08 Декабря 2002, 21:13:23
Цитировать
tol\'ko ia somnevaius\' chto mozhno s ripe poluchit\' vsegda 100% info.

Это будет самая достоверная информация, как говорится от "первоисточника".;)
Цитировать
i mozhet byt\' 1 ili 5 strochek "address"..

Скажу тебе больше, в ответе может быть не только одна секция "person", а сразу две(больше двух пока я не видел), да ещё и чёткого формата нет... + адрес может быть записан ещё и в поле "descr", кстати этому поле я отдаю более высокий приоритет, потому что там в основном пишется адрес провайдера (вывод сделал сам, после просмотра ~40 отчётов).
Цитировать
A kak uznat\' esli Maintainer (MNT), deistvitel\'no zhivet v tome zhe gorode gde i set\' ?

Что есть MNT?
Цитировать
Nu i kak uznat\' kakaia iz nih soderzhit gorod..

А вот это как раз самое интересное:). Впринципе это не особо и трудно, так как некоторые закономерности всё же просматриваются.
Название: Как по IP адресу узнать город посетителя?
Отправлено: Metaller от 09 Декабря 2002, 10:05:56
Tronyx
MNT - это сигнатура РИПНа для службы поддержки
Название: Как по IP адресу узнать город посетителя?
Отправлено: AlieN от 09 Декабря 2002, 14:44:57
[OFF]man get_town_by_ip
:)[/OFF]
Название: Как по IP адресу узнать город посетителя?
Отправлено: Tronyx от 09 Декабря 2002, 16:15:32
Цитировать
man get_town_by_ip

[OFF]Just added[/OFF] :)
Название: Как по IP адресу узнать город посетителя?
Отправлено: ilya_shipilov от 09 Декабря 2002, 19:01:29
Ну вот получил информацию (какую-то) через whois.ripe.net . В этой каше (называемой RPSL) записаны города. Причем выводятся данные по маршрутизатору, сетям, персонам - и у каждого город может быть указан, а может и не быть.
Вопрос - где взять базу всех городов (Мира), чтобы искать соответствие. Как по-другому осуществить процедуру выбора города - я не представляю.
Название: Как по IP адресу узнать город посетителя?
Отправлено: Tronyx от 09 Декабря 2002, 20:33:22
Цитировать
и у каждого город может быть указан, а может и не быть.

Город указан у всех.
Цитировать
где взять базу всех городов (Мира)

Ишь какой хитрый БД всех городов мира ему...;) такой просто не существует, есть одна, но она так себе, лежит где-то на http://netgeo.caida.org
Цитировать
чтобы искать соответствие.

ИМХО это наихудший вариант, так как города записываются совершенно по разному (Киев = Kiev, Kyiv, видел ещё и третий вариант, не помню как пишется) и как ты определишь чё за город?
Цитировать
Как по-другому осуществить процедуру выбора города - я не представляю.

Парсить, и только парсить ;) Посмотри хотябы 10-20 отчётов, может заметишь закономерности...:)
Название: Как по IP адресу узнать город посетителя?
Отправлено: ilya_shipilov от 09 Декабря 2002, 21:10:32
Понятно. Буду искать закономерности... ох, не нравится мне это что-то...
А как, например, на HotLog\'е статистика городов работает?
>> Tronyx: за ссылочку спасибо.
Название: Как по IP адресу узнать город посетителя?
Отправлено: ilya_shipilov от 09 Декабря 2002, 21:21:21
Цитировать
Город указан у всех.

А телефоны там какие-то? может по кодам страны/города определять? А вообще, эту информацию вносит кто и когда? провайдеры?
Название: Как по IP адресу узнать город посетителя?
Отправлено: Tronyx от 09 Декабря 2002, 22:33:50
Цитировать
А телефоны там какие-то? может по кодам страны/города определять?

Малодец! Правильно! ;) Только это надо использовать как дополнение или проверку, так как телефон указывается в секуии person, а это не значит что персона живёт там же где расположен провайдер. Вот тебе наглядный тому пример из моей "коллекции":
inetnum:      194.226.216.0 - 194.226.217.255
netname:      ISPSYSTEM
descr:        Research company developing hi-tech hosting descr:        B.Sergievskiy per. 10. 4th floor
descr:        103045, Moscow,
descr:        Russia
country:      RU
...
route:        194.226.192.0/19
descr:        RUNNet
descr:        Russian Federal University Network
...
person:       Dmitry A. Sidorov
address:      GIBI S.A.
address:      34, Raduzhniy,
address:      664000 Irkutsk, Russia
phone:        +7 095 7978575
fax-no:       +7 095 7978574
...

Телефон московский, а адрес сибирский, как это получилось я просто не представляю :-(

ilya_shipilov найдёшь какие-нибудь интересные таблицы/базы данных не поленись, дай линк:), особенно интересуют таблицы перевода:
Moskow = Москва
London = Лондон
и т.д.

И ещё кто нибудь знает какие диапазоны ip адресов принадлежат тому или иному whois серверу? Ripn это только для Европы. :(
Название: Как по IP адресу узнать город посетителя?
Отправлено: ilya_shipilov от 11 Декабря 2002, 09:35:17
Tronyx  Есть базы по странам и городам России. Напиши - вышлю. mailto:shipilov@nskbase.ru
Название: Как по IP адресу узнать город посетителя?
Отправлено: Venus от 26 Января 2004, 11:04:27
2ilya_shipilov:
Вышли пожалуйста эти базы на karim@venus-design.com
Писал тебе на мыло - сообщение не дошло
Название: Как по IP адресу узнать город посетителя?
Отправлено: nobody от 26 Января 2004, 12:12:17
Для начала
http://www.arin.net
http://www.ripe.net
http://lacnic.net/
http://www.apnic.net/

На все сервисы можно обращаться сколько угодно, у них нет ограничений.

Самая нормально выводимая информация это у arin.net
легко выделяется штат и город, но и там бывают непредсказуемые случаи...


$city_ru[1] = "St.Petersburg";
$city_ru[2] = "Moscow";
$city_ru[3] = "Ekaterinburg";
$city_ru[4] = "Saint-Petersburg";
$city_ru[5] = "Chelyabinsk";
$city_ru[6] = "Nizhny Novgorod";
$city_ru[7] = "Samara";
$city_ru[8] = "Rostov-on-Don";
$city_ru[9] = "Miass";
$city_ru[10] = "Izhevsk";
$city_ru[11] = "Krasnodar";
$city_ru[12] = "Tomsk";
$city_ru[13] = "Taganrog";
$city_ru[14] = "Vladivostok";
$city_ru[15] = "Omsk";
$city_ru[16] = "Irkutsk";
$city_ru[17] = "Shadrinsk";
$city_ru[18] = "Tver";
$city_ru[19] = "Novosibirsk";
$city_ru[20] = "St. Petersburg";
$city_ru[21] = "Astrakhan";
$city_ru[22] = "Surgut";
$city_ru[23] = "Tatarstan";
$city_ru[24] = "Kaliningrad";
$city_ru[25] = "Perm";
$city_ru[26] = "Syktyvkar";
$city_ru[27] = "Ufa";
$city_ru[28] = "Voronezh";
$city_ru[29] = "Arkhangeslk";
$city_ru[30] = "Kursk";
if ($ip!="")
{
$sock=fsockopen ("whois.ripe.net",43,$errno,$errstr);
if(!$sock)
{
}
else
{
fputs ($sock,$ip."\\r\\n");
while(!feof($sock))
{
$str[$i++] = fgets($sock,1024);
}
}
fclose ($sock);
}
for($a = 0; $a <= count($str); $a++)
{
for($s = 1; $s <= count($city_ru); $s++)
{
$strr[] = substr(strstr($str[$a],$city_ru[$s]),0,strlen($city_ru[$s]));
}
}
$strr = array_values(array_unique($strr));
if($strr[1] == "Saint-Petersburg" || $strr[1] == "St. Petersburg")
{
$strr[1] = "St.Petersburg";
}
$city = strtolower($strr[1]);
?>

это для россии, но и в нем есть глюки...
но все равно попадаются странности...
Название: Как по IP адресу узнать город посетителя?
Отправлено: nobody от 26 Января 2004, 12:14:30
Я не притендую на самый лучший и оптимизированный код, он просто работает.
Название: Как по IP адресу узнать город посетителя?
Отправлено: nobody от 26 Января 2004, 12:20:43
чуть не забыл,
в arin.net очень часто выдает то что IP некой подсетке если интересно то выложу как это решается.