Od rana szukam i jedno działające co znalazłem korzysta z whois. Chodzi o to jak sprawdzić nazwę kraju lub ewentualnie jego kod gdzie jest zarejestrowany IP? [glowa]
0
0
<?php
$errno = 0;
$errstr = '';
$ip = $_GET['ip'];
$s = fsockopen('whois.arin.net', 43, $errno, $errstr, 5);
if (!$s)
{
die($errno . ': ' . $errstr);
}
fputs($s, "$ip\n");
$ret = '';
while(!feof($s))
{
$ret .= fgets($s, 1024);
}
fclose($s);
if (preg_match('#^ReferralServer:(.+)$#m', $ret, $c))
{
/* Musimy odpyta� inny serwer :-) */
preg_match('#whois://(.+?)(:43)?$#', $c[1], $c);
$s = fsockopen($c[1], 43, $errno, $errstr, 5);
if (!$s)
{
die($errno . ': ' . $errstr);
}
fputs($s, "$ip\n");
$ret = '';
while(!feof($s))
{
$ret .= fgets($s, 1024);
}
fclose($s);
}
if (preg_match('#country.+?([A-Z]+)#i', $ret, $c))
{
print_r($c[1]);
}
?>
0
Dzięki, działa ładnie [soczek]
Tylko mam pytanie:
if (preg_match('#^ReferralServer:(.+)$#m', $ret, $c))
Kiedy ten if będzie spełniony [???]
0
Gdy w kodzie pojawi się linijka:
RefferalServer:adres
#np
ReferralServer: whois://whois.apnic.net
Czyli serwer whois odeśle nas do innego serwera (np ripe).
Flaga "m" oznacza, że ^$ ma łapać początek/koniec linijki.