как php скриптом узнать имя провайдера, город, и страну...
Автор
Сообщение
noLove Два пингвина
Зарегистрирован: 25.04.2007 Сообщения: 352
18114
Добавлено: Вс, 29 Июн, 2008 04:12 Заголовок сообщения: как php скриптом узнать имя провайдера, город, и страну...
субж посетителя.
хочу в свои юзербары прикрутить такую фишку. Пока что почитал - пишут что надо юзать whois сервисы, и им подобные....
может быть есть какой нибудь сервис, который инфу может экспортировать в удобоусвояемом виде, например, xml? или все таки придется парсер самому руками писать?? _________________ Друзья, уважайте труд других http://xternalx.com - моя хомпага
require('mysql.php'); // подключение к MySQL, появляется подключение $con
set_time_limit(0); // на всякий случай, пусть будет максимальный лимит времени
/* получаем список CSV*/
$filename = "base.csv";
$handle = fopen($filename, "r");
$csv = fread($handle, filesize($filename));
fclose($handle);
mysql_query("SET SESSION character_set_database = cp1251;",$con); //обязательный запрос при работе с CSV
$csv=nl2br($csv); // преобразуем все переводы каретки в BR
$csv=explode('<br />',$csv);// и делаем массив строк из прочитанного файла
/*Формируем шапку SQL запроса.*/
$sql="INSERT INTO `".$sql_pref."geoip` (`ip_start`,`ip_finish`,`nn_start`, `nn_finish`,`ccode`,`cname`) VALUES ";
mysql_query("TRUNCATE `".$sql_pref."geoip`;",$con);
/*Сам список начит=нается с 10 строки поэтому с нее и начнем*/
for ($i=0; $i<count($csv);$i++)
{
$csv[$i] = str_replace('"','',$csv[$i]);// удалим "
$val=explode(',',$csv[$i]);
if (strlen($val[0])>3) $sql.="('$val[0]','$val[1]', $val[2], $val[3], '$val[4]', '$val[5]'),";
//обратите внимание, что последний символ запроса - запятая поэтому
} // при выходе из цикла удаляем эту запятую и ставим не ее меcто ";"
$sql=substr($sql,0,strlen($sql)-1).';';
if (!(mysql_query($sql,$con))) echo mysql_error(); // запускаем запрос
//echo $sql; // можно вывести и сам запрос.
echo ('done');
//готово
//done!
?>
/*функция получения страны по IP*/
function get_c($ip){
global $con; // активное подключение
global $sql_pref; // префикс бд
//settype($nn,'double');
//$nn=ip2long($ip);
//$ip='213.172.3.14'; - было для теста
$ip=ip2long($ip);
$ip=sprintf('%u', $ip);
$q="SELECT cname FROM ".$sql_pref."geoip WHERE '".$ip."' >= nn_start AND '".$ip."' <= nn_finish";
if (!($res=mysql_query($q,$con))) echo mysql_error();
$row=mysql_fetch_row($res);
return $row['0'];
}
Модуль CNGeoip 4 предназначен для быстрого получения географических данных, таких
как страна, область или штат, город, а также географических координат, по которым
зарегистрирован IP-адрес. Информация предоставляется на трех языках: русском,
английском, а также языке страны, в которой зарегистрирован IP-адрес.