Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как определить к какой стране относится данный IP?
 
 автор: Feniks2008   (11.07.2008 в 19:34)   письмо автору
 
 

как определить к какой стране относится данный IP?
IP я определяю. А вот страну как определить не знаю.
Подскажите пожалуйста.

   
 
 автор: AlexDIXI   (12.07.2008 в 05:28)   письмо автору
 
   для: Feniks2008   (11.07.2008 в 19:34)
 

С помощью базы GEOIP которую можно достать погуглив. GEOIP базу, разобрать, установить в таблицу MySQl и сравнивать не полный IP пользователя, например полный 127.0.0.0 вырезать все до 3 точки и в таблицы MySQL если есть ответ то вытаскивать страну - можно вытащить как в полном названии так и в трех - двух кодовом например USA или RU

Успехов..

   
 
 автор: а-я   (12.07.2008 в 21:08)   письмо автору
 
   для: Feniks2008   (11.07.2008 в 19:34)
 

Нужно собрать базу IP провайдеров.
Где-нибудь скачать или вручную собрать с помощью whois
Потом примерно такими запросами узнавать инфу

SELECT DISTINCT 
 *
FROM 
 `IPs` 
WHERE 
 INET_ATON("'.IP.'") BETWEEN `IP_start` AND `IP_end`
LIMIT 1

   
 
 автор: AlexDIXI   (13.07.2008 в 01:32)   письмо автору
 
   для: а-я   (12.07.2008 в 21:08)
 

Да и еще..

Дергаем Ip пользователя. И используем whois для опредиления страны.

Вот скрипт который за 1 секунду выдал мне данные о моем IP адресе.



<center>

 <form method=post>

 <input type=text name=ip size=35>

 <input type=submit value='Введите IP-адрес'>

 </form>

</center>

<?php

if(!empty($_POST['ip'])) echo whois("whois.arin.net",$_POST['ip']);



function 
whois($url,$ip)

{

  
// Соединение с сокетом TCP, ожидающим на сервере "whois.arin.net" по 

  // 43 порту. В результате возвращается дескриптор соединения $sock.

  
$sock fsockopen($url43$errno$errstr);

  if (!
$sock) exit("$errno($errstr)");

  else

  {

    echo 
$url."<br>";

    
// Записываем строку из переменной $_POST["ip"] в дескриптор сокета.

    
fputs ($sock$ip."\r\n");

    
// Осуществляем чтение из дескриптора сокета.

    
$text "";

    while (!
feof($sock))

    {

      
$text .= fgets ($sock128)."<br>";

    }

    
// закрываем соединение

    
fclose ($sock);



    
// Ищем реферальный сервере

    
$pattern "|ReferralServer: whois://([^\n<:]+)|i";

    
preg_match($pattern$text$out);

    if(!empty(
$out[1])) return whois($out[1], $ip);

    else return 
$text;

  }

}


Вот http://softtime.ru/scripts/whois.php

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования