EOMY.NET на главную
|
EOMY.NET Хостинг EOMY.NET: Форум поддержки
|
|
как php скриптом узнать имя провайдера, город, и страну...
|
| Автор |
Сообщение |
noLove Хостинг — это наше всё!


Зарегистрирован: 25.04.2007 Сообщения: 205
10297 
|
Добавлено: Вс, 29 Июн, 2008 04:12 Заголовок сообщения: как php скриптом узнать имя провайдера, город, и страну... |
|
|
субж посетителя.
хочу в свои юзербары прикрутить такую фишку. Пока что почитал - пишут что надо юзать whois сервисы, и им подобные....
может быть есть какой нибудь сервис, который инфу может экспортировать в удобоусвояемом виде, например, xml? или все таки придется парсер самому руками писать?? _________________ Друзья, уважайте труд других
http://xternalx.7pe.net - моя хомпага
 |
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 1763
23478 
|
Добавлено: Вс, 29 Июн, 2008 07:31 Заголовок сообщения: |
|
|
Я работаю с maxmind
http://www.maxmind.com/app/geolitecountry
http://www.maxmind.com/app/geolitecity
для geoBaseCountry
парсим CSV
| Код: | <?
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!
?> |
Похожий пример http://lazutov.ru/kak-rabotat-s-csv/
Далее в скрипите (для geoBaseCountry)
| Код: | /*функция получения страны по 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'];
} |
PS изюминка в самом запросе.
PPS полк nn_start nn_finish - у меня по-моему bigint(13) _________________ ps.int.ru - блог, Lwhois - Удобный whois для windows | whois-сервис с дополнительными возможностями
регистрация доменов RU-150р - в ЛС |
|
| Вернуться к началу |
|
 |
noLove Хостинг — это наше всё!


Зарегистрирован: 25.04.2007 Сообщения: 205
10297 
|
Добавлено: Вс, 29 Июн, 2008 11:51 Заголовок сообщения: |
|
|
спасибо! буду разбираться, как вернусь домой... _________________ Друзья, уважайте труд других
http://xternalx.7pe.net - моя хомпага
 |
|
| Вернуться к началу |
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|