|
|
|
| Скажите, а куда-таки подсоединяться, чтобы проверять айпи и страну? Я прямо руками через браузер на ripe.net пробовал - ничего не выдает... Так куда коннектиться-то? Собственно, где бы скрипту удобнее было.... | |
|
|
|
|
|
|
|
для: Shorr Kan
(26.04.2005 в 06:20)
| | Через браузер не получится, так как браузер работает по 80 порту, а whois по 43. А кого определять хотите? Обычно подключаются либо на whois, который ответственнен за IP-адреса вашего региона, но если он не известен, то начинают с головного "whois.ripe.net" - смотрят, куда он отсылает - идут по указанному IP-адресу, смотрят куда следующий whois отфутболивает и так до тех пор пока к нужному не придёте. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 13:02)
| | Но через сокеты ведь можно?
А кого определять - и впрям неизвестно... Почему-то всегда стремятся указать не свою страну. Причем все. Друг к другу в гости хотят, что ли...
Вот мне и нужно проверять, обманывают ли эти господа, указываю "свою" страну при регистрации.
=========================
Только что вспомнил, что видел у вас пример whois. Испробовал его. Выдало следующее:
% This is the RIPE Whois query server #1.
% The objects are in RPSL format.
%
% Note: the default output of the RIPE Whois server
% is going to be changed soon. Your tools may need
% to be adjusted. See
% http: //www.ripe.net/db/news/abuse-proposal-20050331.html
% for more details.
%
% Rights restricted by copyright.
% See http: //www.ripe.net/db/copyright.html
inetnum: 192.168.0.0 - 192.168.255.255
netname: IANA-CBLK-RESERVED1
descr: Class C address space for private internets
descr: See http: //www.ripe.net/db/rfc1918.html for details
country: EU # Country is really world wide
org: ORG-IANA1-RIPE
admin-c: RFC1918-RIPE
tech-c: RFC1918-RIPE
status: ALLOCATED UNSPECIFIED
remarks: Country is really worldwide
remarks: This network should never be routed outside an enterprise
remarks: See RFC1918 for further information
mnt-by: RIPE-NCC-HM-MNT
mnt-lower: RIPE-NCC-HM-MNT
changed: rfc1918@ripe.net 20020129
changed: hostmaster@ripe.net 20030526
changed: hostmaster@ripe.net 20030904
changed: hostmaster@ripe.net 20031014
changed: ripe-dbm@ripe.net 20040422
source: RIPE
organisation: ORG-IANA1-RIPE
org-name: Internet Assigned Numbers Authority
org-type: IANA
address: see http: //www.iana.org
remarks: The IANA allocates IP addresses and AS number blocks to RIRs
remarks: see http: //www.iana.org/ipaddress/ip-addresses.htm
remarks: and http: //www.iana.org/assignments/as-numbers
e-mail: bitbucket@ripe.net
admin-c: IANA1-RIPE
tech-c: IANA1-RIPE
mnt-ref: RIPE-NCC-HM-MNT
mnt-by: RIPE-NCC-HM-MNT
changed: bitbucket@ripe.net 20040417
source: RIPE
role: RFC1918 Role
address: Singel 258
address: 1016 AB Amsterdam
address: The Netherlands
e-mail: rfc1918@ripe.net
trouble: See http: //www.ripe.net/db/rfc1918.html
admin-c: RFC1918-RIPE
tech-c: RFC1918-RIPE
nic-hdl: RFC1918-RIPE
mnt-by: RFC1918-MNT
changed: rfc1918@ripe.net 20020121
changed: rfc1918@ripe.net 20021218
source: RIPE
|
Теперь такой вопрос.... И что все это означает? Ладно, допустим этот сервер о той стране в которой я живу - ни разу не слышал.... Где он показывает, куда мне теперь подключаться? | |
|
|
|
|
|
|
|
для: Shorr Kan
(26.04.2005 в 14:00)
| | Попробуйте вот сюда пойти
address: see http: //www.iana.org
|
Вообще алгоритм следования по whois серверам разбирался в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=580, вам вероятно будет интересно её почитать. Здесь мне не нравится строка
descr: Class C address space for private internets
|
Что означает, что данный диапазон из IP-адресов класса C предназначен для частного использования
remarks: This network should never be routed outside an enterprise
|
Это переводится как: эта сеть никогда не должна использоваться вне корпорации. Такое ощущение, что IP-адрес подделка, хотя я могу ошибаться. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 14:21)
| | Смотря что считать корпорацией - мой провайдер предоставляет доступ к интернету через локальную сеть.
Тем не менее, не совсем ясно - и как же мне узнать, где нахожусь? :) Хотя бы, в какой я стране?
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=580
я прочитал. В целом - малоинформативно... Да и, откровенно говоря, я ее уже четвертый раз читаю - это направление мне нужно изучить.
На http://www.iana.org я полазил... Не нашел ничего, что хотя бы намекнуло бы мне как использовать их сайт в скрипте сверки айпи-страна. | |
|
|
|
|
|
|
|
для: Shorr Kan
(26.04.2005 в 14:33)
| | Вы не поверите! Я смог... Только два вопроса:
Эта штука выводит страны, как две/три буковки. А где можно найти соотношении таких букв - к полному названию страны?
Сейчас я ищу поле country. А как будет называться поле, если на текущем whois не будет информации? В той параллельной теме было сказано про "ReferralServer:" - это верно? | |
|
|
|
|
|
|
|
для: Shorr Kan
(26.04.2005 в 19:55)
| | > Эта штука выводит страны, как две/три буковки. А где можно
>найти соотношении таких букв - к полному названию страны?
Нужен список доменных имён первого уровня и их соответствие ru - РФ. ua - Украина и т.п. скорее всего там тоже соответствие.
> Сейчас я ищу поле country. А как будет называться поле,
>если на текущем whois не будет информации? В той
>параллельной теме было сказано про
>ReferralServer: - это верно?
Да вообще при штатной работе да, должен быть ReferralServer. | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 22:46)
| | Хм... Ну вот наглядный пример - на сайт недавно зашел человек
202.108.250.243
проверил whois.ripe.net
Выдало:
202.108.250.243 - EU # Country is really world wide - 26 April 2005 22:20:26
И? как с этим работать? Никакой ReferralServer я там не нашел... | |
|
|
|
|
|
|
|
для: Shorr Kan
(26.04.2005 в 22:50)
| | А что ещё выдал? | |
|
|
|
|
|
|
|
для: cheops
(26.04.2005 в 23:01)
| | Ну скрипт - ничего... Он ничего и не должен был... а руками если туда пойти, то вот:
% This is the RIPE Whois query server #2.
% The objects are in RPSL format.
%
% Note: the default output of the RIPE Whois server
% is going to be changed soon. Your tools may need
% to be adjusted. See
% http://www.ripe.net/db/news/abuse-proposal-20050331.html
% for more details.
%
% Rights restricted by copyright.
% See http://www.ripe.net/db/copyright.html
inetnum: 0.0.0.0 - 255.255.255.255
netname: IANA-BLK
descr: The whole IPv4 address space
country: EU # Country is really world wide
org: ORG-IANA1-RIPE
admin-c: IANA1-RIPE
tech-c: IANA1-RIPE
status: ALLOCATED UNSPECIFIED
remarks: The country is really worldwide.
remarks: This address space is assigned at various other places in
remarks: the world and might therefore not be in the RIPE database.
mnt-by: RIPE-NCC-HM-MNT
mnt-lower: RIPE-NCC-HM-MNT
mnt-routes: RIPE-NCC-RPSL-MNT
changed: bitbucket@ripe.net 20010529
changed: bitbucket@ripe.net 20020625
changed: hostmaster@ripe.net 20031014
changed: bitbucket@ripe.net 20040422
changed: bitbucket@ripe.net 20040504
source: RIPE
organisation: ORG-IANA1-RIPE
org-name: Internet Assigned Numbers Authority
org-type: IANA
address: see http://www.iana.org
remarks: The IANA allocates IP addresses and AS number blocks to RIRs
remarks: see http://www.iana.org/ipaddress/ip-addresses.htm
remarks: and http://www.iana.org/assignments/as-numbers
e-mail: bitbucket@ripe.net
admin-c: IANA1-RIPE
tech-c: IANA1-RIPE
mnt-ref: RIPE-NCC-HM-MNT
mnt-by: RIPE-NCC-HM-MNT
changed: bitbucket@ripe.net 20040417
source: RIPE
role: Internet Assigned Numbers Authority
address: see http://www.iana.org.
e-mail: bitbucket@ripe.net
admin-c: IANA1-RIPE
tech-c: IANA1-RIPE
nic-hdl: IANA1-RIPE
remarks: For more information on IANA services
remarks: go to IANA web site at http://www.iana.org.
mnt-by: RIPE-NCC-MNT
changed: bitbucket@ripe.net 20010411
source: RIPE
Bold: Object type.
Underlined: Primary key(s).
Hyperlinks: Searchable Attributes.
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(26.04.2005 в 22:50)
| | > Никакой ReferralServer я там не
>нашел...
А его здесь (приведенный листинг) и не должно быть. Реферальный сервер выдается только в том случае, если тот whois-сервис, к которому Вы обращаетесь не отвественен за запрашиваемый Вами диапазон IP-адресов. А если все нормально и Вам выдается информация по IP-адресу, то никакие реферальные сервера не нужны. | |
|
|
|
|
|
|
|
для: Кузнецов М.В.
(27.04.2005 в 11:50)
| | Хорошо... Но этот листинг - он что показывает? Что у человека страна - EU. Я так понимаю, Что это Европа. Восхитительно. А нельзя ли поконкретнее? Практически на все айпишнички моя функция дала страну, а на пару, в том числе и такой - какую-то ерунду. Вот мне и нужно как-то эту ерунду перепроверить. Как? | |
|
|
|
|
|
|
|
для: Shorr Kan
(27.04.2005 в 21:27)
| | И поясните - что же такое EU # Country is really world wide ? | |
|
|
|
|
|
|
|
для: Shorr Kan
(28.04.2005 в 04:03)
| | Вообще эта фраза обозначает зону, не имеющую географической привязки. В нашем случае, это, правда, не так, просто райповский сервис не знает этого IP адреса... Вот он и написал, что "ему кажается, что Европа, а може быть все что угодно" :). | |
|
|
|
|
|
|
|
для: Shorr Kan
(27.04.2005 в 21:27)
| | Этот IP принадежит США.
OrgName: Internet Assigned Numbers Authority
OrgID: IANA
Address: 4676 Admiralty Way, Suite 330
City: Marina del Rey
StateProv: CA
PostalCode: 90292-6695
Country: US
|
| |
|
|
|
|
|
|
|
для: Кузнецов М.В.
(29.04.2005 в 00:49)
| | Восхитительно... В таком случае, как это проверять? ripe не выдал ссылки на другой whois... Как быть?
Единственное, что приходит в голову, это если вижу такую строку - пересылать на другую функцию, которая с другим whois работать будет... Но я не знаю список whois'ов... Может быть, поделитесь такими, которые... ну как... Основные, что ли. Вот как ripe.net
Или тут лучше как-то иначе действовать? | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.04.2005 в 01:44)
| | Недавно столкнулись с похожей проблемой, вот пример(код не мой, просто нашел в файлах где он используется):
$host = 'ip2city.ru';
$path = "/ip2city.php?ip=".$ip;
//соединение с хостом
$header = "GET $path HTTP/1.0\nHOST: $host\n\n";
if(@$so = fsockopen($host, 80, &$errno, &$errstr, 30))
{fputs($so, $header);
while(fgets($so,2048)!="\r\n" && !feof($so));
unset($buf);
while(!feof($so)) @$buf.=fread($so,2048);
fclose($so);}
$info = explode("\n",$buf);
$city = substr($info[0], (strpos($info[0],"=")) + 1); //удаляет все перед =
$country = substr($info[4], (strpos($info[4],"=")) //удаляет все перед =
mysql_query("insert into stats_cities_now values(null, '$camp_id', '$city', '$country')");
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(29.04.2005 в 01:44)
| | согласен copy-paste "слегка" не аккуратный, пардон не уследил | |
|
|
|
|
|
|
|
для: korwin
(29.04.2005 в 04:22)
| | Угу... Но этот не лучше... Ответ на эти адреса, которые ripe.net так пометил, вот таков:
Информация о введенном IP адресе не найдена в базе.
Попробуйте другой адрес.
и
Город:
Страна:
Код страны:
Сеть: -
Описание сети:
Безумно информативно :( | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.04.2005 в 01:44)
| | Дело в том, что ripe.net иногда выкидывает вот такие экивоки, что про некоторые IP, не лежащие в его зоне он говорит, что они не имеют географической привязки. И не дает при этом ссылок на реферальные сервера (потому что если он говорит, что нет геопривязки, то ни о каких рефералах речь не идет).
Почему он так делает - вопрос не к нам, в качестве выхода можно начинать пользоваться сервисом который весьма исправно дает ссылки на реферальные сервера, если IP-адрес не принадлежит к тому диапазону, за который он отвечает. | |
|
|
|
|
|
|
|
для: Кузнецов М.В.
(29.04.2005 в 10:46)
| | Великолепно! Спасибо большое, он действительно прикидывается работающим... Но вот что он мне выдал:
OrgName: Asia Pacific Network Information Centre
OrgID: APNIC
Address: PO Box 2131
City: Milton
StateProv: QLD
PostalCode: 4064
Country: AU
ReferralServer: whois: //whois.apnic.net
Страна AU... А если он определил страну, то зачем выдале реф-сервер? | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.04.2005 в 11:16)
| | Но я проверил свой айпи... неверно. Однако, по реферальному серверу пошел - верно. Я попытался сделать следование... но что-то не получается... Вы не могли бы помочь? Вот моя попытка:
<?
$ip='xxx.xxx.xxx.xxx';
$server="whois.arin.net";
function whois($server,$ip) {
$sock = fsockopen ($server,43,$errno,$errstr);
if (!$sock) {
echo("$errno($errstr)");
return;
}
else {
fputs ($sock, $ip."\r\n");
while (!feof($sock)) {
$line=str_replace(":",": ",fgets ($sock,128));
$first=substr($line,0,+strlen("country:"));
$f_ref=substr($line,0,+strlen("ReferralServer:"));
if($first=="Country:" or $first=="country:")
{$line_ok=$line;}
if($f_ref=="ReferralServer:" or $f_ref=="referralserver:")
{$ref=explode("//",$line);}
}
}
fclose ($sock);
if(!empty($ref)){
$ref_server=explode(":",$ref[1]);
whois(trim($ref_server[0]),$ip);
}else{return $line_ok;}
$country=whois($server,$ip);
print "!".$country;
?>
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(29.04.2005 в 12:39)
| | Так, изменил в конце на
<?
if(!empty($ref)){
$ref_server=explode(":",$ref[1]);
$country=whois(trim($ref_server[0]),$ip);
return $country;
}else{return $line_ok;}
}
$country=whois($server,$ip);
print "!".$country;
?>
|
Вроде стало все верно... Но верно ли это? | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.04.2005 в 11:16)
| | > Страна AU... А если он определил страну, то зачем выдале
>реф-сервер?
Значит, этот диапазон IP не его. Т.е. он про него что-то знает, этот IP есть в базе, но так как не тот диапазон, и он сомневается в правильности данных, он предлагает обратиться к реферальному серверу для получения более точных сведений. | |
|
|
|
|
|
|
|
для: Кузнецов М.В.
(29.04.2005 в 13:12)
| | Ясно, спасибо. Надеюсь, что я все верно сделал. | |
|
|
|