|
|
|
| Здравствуйте!
Есть таблица с пользователями (около 1000), у каждого пользователя свой ip. Возникла необходимость узнать страну и город по этим ip и записать их в дополнительные поля (strana, gorod).
Большинство скриптов которые я нашёл в интернете нерабочие а из рабочих, самый толковый, этот:
function occurrence($ip='', $to = 'windows-1251'){
$ip = ($ip) ? $ip : $_SERVER['REMOTE_ADDR'] ;
$xml = simplexml_load_file('http://ipgeobase.ru:7020/geo?ip='.$ip);
if($xml->ip->message){
if( $to == 'utf-8' ) {return $xml->ip->message;} else {
if( function_exists( 'iconv' ) ) return iconv( "UTF-8", $to . "//IGNORE",$xml->ip->message);else return "The library iconv is not supported by your server";}
}else{if( $to == 'utf-8' ) {return $xml->ip->city;} else {if( function_exists( 'iconv' ) ) return iconv( "UTF-8", $to . "//IGNORE",$xml->ip->city);else return "The library iconv is not supported by your server";}}}
$gorod = occurrence($ip_user,'utf-8');
| но он, к сожалению, вычисляет только города и те не все а только российские и украинские.
Посоветуйте какой-нибудь рабочий скрипт который выводит страну (любую) и город из ip пользователя.
И ещё, как вы думаете, такая реализация задуманного "пойдет" или надо оптимизировать:
$x1 = mysql_query("SELECT ip,user FROM user_ip order by ip", $conn);
while($x2 = mysql_fetch_array($x1))
{
$ip = $x2["ip"];
$user = $x2["user"];
//Скрипт вычисления страны и города ($strana; $gorod;)
if ($strana!="" AND $gorod!="")
{
$sqlupdate = mysql_query("UPDATE user_ip SET strana = '$strana', gorod = '$gorod' WHERE user = '$user' ", $conn);
}
}
| Сколько, по времени, займет эта "перепись", не заблокирует ли меня сайт к которому будет обращаться скрипт за бомбардировку его запросами?
Заранее спасибо! | |
|
|