EOMY.NET
на главную
EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   <b>Лотерея</b>Лотерея   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

RSS Feed

как php скриптом узнать имя провайдера, город, и страну...

 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
как php скриптом узнать имя провайдера, город, и страну...
Автор Сообщение
noLove
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 25.04.2007
Сообщения: 205

10297 Монеты

СообщениеДобавлено: Вс, 29 Июн, 2008 04:12    Заголовок сообщения: как php скриптом узнать имя провайдера, город, и страну... Ответить с цитатой

субж посетителя.
хочу в свои юзербары прикрутить такую фишку. Пока что почитал - пишут что надо юзать whois сервисы, и им подобные....

может быть есть какой нибудь сервис, который инфу может экспортировать в удобоусвояемом виде, например, xml? или все таки придется парсер самому руками писать??
_________________
Друзья, уважайте труд других Wink
http://xternalx.7pe.net - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
lazutov
$a ||= 5;
$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    Заголовок сообщения: Ответить с цитатой

спасибо! буду разбираться, как вернусь домой...
_________________
Друзья, уважайте труд других Wink
http://xternalx.7pe.net - моя хомпага
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
Страница 1 из 1

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group






Рейтинг SIMPLETOP.NET