Forum Webscript.Ru
Программирование => PHP => Тема начата: ilya_shipilov от 08 Декабря 2002, 17:24:02
-
...
-
http://www.ripn.net:8080/nic/whois/index.html
-
poprobui posmotret\' zdes\'
http://www.visualroute.com
-
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), у них кажется ограничений нет (я вчера начал писать такую же "штуку", лазил по их серверу и информации об ограничениях не нашёл).
А кто как достаёт из ответа сервера город?
-
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".
-
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\' ?
-
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..
А вот это как раз самое интересное:). Впринципе это не особо и трудно, так как некоторые закономерности всё же просматриваются.
-
Tronyx
MNT - это сигнатура РИПНа для службы поддержки
-
[OFF]man get_town_by_ip
:)[/OFF]
-
man get_town_by_ip
[OFF]Just added[/OFF] :)
-
Ну вот получил информацию (какую-то) через whois.ripe.net . В этой каше (называемой RPSL) записаны города. Причем выводятся данные по маршрутизатору, сетям, персонам - и у каждого город может быть указан, а может и не быть.
Вопрос - где взять базу всех городов (Мира), чтобы искать соответствие. Как по-другому осуществить процедуру выбора города - я не представляю.
-
и у каждого город может быть указан, а может и не быть.
Город указан у всех.
где взять базу всех городов (Мира)
Ишь какой хитрый БД всех городов мира ему...;) такой просто не существует, есть одна, но она так себе, лежит где-то на http://netgeo.caida.org
чтобы искать соответствие.
ИМХО это наихудший вариант, так как города записываются совершенно по разному (Киев = Kiev, Kyiv, видел ещё и третий вариант, не помню как пишется) и как ты определишь чё за город?
Как по-другому осуществить процедуру выбора города - я не представляю.
Парсить, и только парсить ;) Посмотри хотябы 10-20 отчётов, может заметишь закономерности...:)
-
Понятно. Буду искать закономерности... ох, не нравится мне это что-то...
А как, например, на HotLog\'е статистика городов работает?
>> Tronyx: за ссылочку спасибо.
-
Город указан у всех.
А телефоны там какие-то? может по кодам страны/города определять? А вообще, эту информацию вносит кто и когда? провайдеры?
-
А телефоны там какие-то? может по кодам страны/города определять?
Малодец! Правильно! ;) Только это надо использовать как дополнение или проверку, так как телефон указывается в секуии 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 это только для Европы. :(
-
Tronyx Есть базы по странам и городам России. Напиши - вышлю. mailto:shipilov@nskbase.ru
-
2ilya_shipilov:
Вышли пожалуйста эти базы на karim@venus-design.com
Писал тебе на мыло - сообщение не дошло
-
Для начала
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]);
?>
это для россии, но и в нем есть глюки...
но все равно попадаются странности...
-
Я не притендую на самый лучший и оптимизированный код, он просто работает.
-
чуть не забыл,
в arin.net очень часто выдает то что IP некой подсетке если интересно то выложу как это решается.