На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

WEB-программирование

250 подписчиков

<?PHP - Узнаём страну по IP

1. Узнаём IP-адрес посетителя:

IP хранится в суперглобальном массиве $_SERVER;

пример:

 

$ip =  $_SERVER['REMOTE_ADDR'];

 

2. Пишем функцию whois:

 

function whois($ip) {
  if ($ip!="") {
    $sock = fsockopen ("whois.ripe.net",43,$errno,$errstr);
    if ($sock) {
       fputs ($sock, $ip."\r\n");
      while (!feof($sock)) {
        $str.=trim(fgets ($sock,128)." <br>");
      }
    }
    else {
          $str.="$errno($errstr)";
      return;
    }
    fclose ($sock);
  }
  return $str;
  }

 

получаем whois-данные  для нашего IP

пример:

 

$whois =  whois($_SERVER['REMOTE_ADDR']);

 

3. Выдираем с помощью регулярных выражений данные о стране

 

Тут уже может быть куча способов, для примера вот этот:

 

 $need = "country:";
 $pos = strpos($whois,$need);
 $search = substr($whois,$pos,18);

 $excount = explode(":", $search);
 
 $country = trim($excount[1]); //готово

 

"$country" содержит значение страны IP-адреса.

 

Значение в формате: RU, UA, US, TJ...

 

4. Что делать? Примеры

 

Запрет посетителей с USA:

 

if($country == "US") {

echo "Your IP banned! He-he...";

exit();

}

 

Вывод названий в другом формате (Россия, Украина, Узбекистан и т. д.):

 

пишем массив или берём значения из базы данных или подключаем файлы....

Картина дня

наверх