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

Форум PHP

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

 

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

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

тема: Определяем страну
 
 автор: ZetRider   (04.04.2006 в 23:06)   письмо автору
 
 

Встал на проблеме написания скрипт который бы делал следующее:
к примеру есть какой нить айпи адрес:
xxx.xxx.xxx.xxx
как можно по нему определить город и страну?

   
 
 автор: Shorr Kan   (05.04.2006 в 00:14)   письмо автору
 
   для: ZetRider   (04.04.2006 в 23:06)
 

Если выяснять надо нечасто - путём запроса на whois. Если часто - лучше установить geoip.

   
 
 автор: ZetRider   (05.04.2006 в 00:16)   письмо автору
 
   для: Shorr Kan   (05.04.2006 в 00:14)
 

а поподробнее можно насчет geoip ?

   
 
 автор: Shorr Kan   (05.04.2006 в 02:19)   письмо автору
 
   для: ZetRider   (05.04.2006 в 00:16)
 

Это модуль апача. Поглядите phpinfo - есть ли там в Loaded Modules - mod_geoip ?

   
 
 автор: ZetRider   (05.04.2006 в 05:32)   письмо автору
 
   для: Shorr Kan   (05.04.2006 в 02:19)
 

не так и ненашел.. но наскоко я понимаю я должен буду иметь список всех стран?

   
 
 автор: Shorr Kan   (05.04.2006 в 05:38)   письмо автору
 
   для: ZetRider   (05.04.2006 в 05:32)
 

Нет. Вы будете получать страну текущего посетителя через переменные окружения. А именно -

$_SERVER["GEOIP_COUNTRY_CODE"]
$_SERVER["GEOIP_COUNTRY_NAME"]

первая - двухбуквенный код, вторая - тирада, в виде полного названия.

   
 
 автор: ZetRider   (05.04.2006 в 05:43)   письмо автору
 
   для: Shorr Kan   (05.04.2006 в 05:38)
 

вот нарык кое какую инфу...
http://www.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.2.6/README.php
и
http://www.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.2.6/mod_geoip.c

а как можно вывести значения:

<?
$_SERVER
["GEOIP_COUNTRY_CODE"]
$_SERVER["GEOIP_COUNTRY_NAME"]
?>

??

   
 
 автор: Лебедев Роман   (05.04.2006 в 18:04)   письмо автору
 
   для: ZetRider   (05.04.2006 в 05:43)
 

>вот нарык кое какую инфу...
>http://www.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.2.6/README.php

>http://www.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.2.6/mod_geoip.c
>
>а как можно вывести значения:
>

><?
>$_SERVER["GEOIP_COUNTRY_CODE"]
>
$_SERVER["GEOIP_COUNTRY_NAME"]
>
?>
>

>??

Проще некуда:

<?
print ($_SERVER["GEOIP_COUNTRY_CODE"]);
print (
$_SERVER["GEOIP_COUNTRY_NAME"]);
?>

   
 
 автор: Shorr Kan   (05.04.2006 в 20:21)   письмо автору
 
   для: Лебедев Роман   (05.04.2006 в 18:04)
 

Из любопытства.... а зачем скобки? Это просто ваш стиль или есть какое-то значение этому, как разница между одинарной кавычкой или двойной?

   
 
 автор: ZetRider   (05.04.2006 в 22:25)   письмо автору
 
   для: Shorr Kan   (05.04.2006 в 20:21)
 

вот так я писал:

<? 
print ($_SERVER["GEOIP_COUNTRY_CODE"]); 
print (
$_SERVER["GEOIP_COUNTRY_NAME"]); 
?>


у меня всеравно ниче невыводит!

   
 
 автор: cheops   (05.04.2006 в 23:43)   письмо автору
 
   для: ZetRider   (05.04.2006 в 22:25)
 

Посмотрите что есть вообще в суперглобальном массиве $_SERVER, распечатав его дамп
<?php
  
echo "<pre>";
  
pritn_r($_SERVER);
  echo 
"</pre>";
?>

   
 
 автор: ZetRider   (06.04.2006 в 11:56)   письмо автору
 
   для: cheops   (05.04.2006 в 23:43)
 

На локалхосте:
Array
(
    [REDIRECT_STATUS] => 200
    [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01
    [HTTP_HOST] => localhost
    [HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    [HTTP_ACCEPT_LANGUAGE] => ru,en;q=0.9
    [HTTP_ACCEPT_CHARSET] => windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
    [HTTP_ACCEPT_ENCODING] => deflate, gzip, x-gzip, identity, *;q=0
    [HTTP_REFERER] => http://localhost/
    [HTTP_CACHE_CONTROL] => no-cache
    [HTTP_CONNECTION] => Keep-Alive, TE
    [HTTP_TE] => deflate, gzip, chunked, identity, trailers
    [PATH] => D:\\WINDOWS\\system32;D:\\WINDOWS;D:\\WINDOWS\\System32\\Wbem;D:\\Program Files\\Common Files\\Adobe\\AGL
    [SystemRoot] => D:\\WINDOWS
    [COMSPEC] => D:\\WINDOWS\\system32\\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    [WINDIR] => D:\\WINDOWS
    [SERVER_SIGNATURE] => 

Apache/2.0.52 (Win32) Server at localhost Port 80



    [SERVER_SOFTWARE] => Apache/2.0.52 (Win32)
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => 127.0.0.1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 127.0.0.1
    [DOCUMENT_ROOT] => F:/www
    [SERVER_ADMIN] => localhost@127.0.0.1
    [SCRIPT_FILENAME] => F:/php4/php.exe
    [REMOTE_PORT] => 1099
    [REDIRECT_URL] => /1.php
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /1.php
    [SCRIPT_NAME] => /php4/php.exe
    [PATH_INFO] => /1.php
    [PATH_TRANSLATED] => F:\\www\\1.php
    [PHP_SELF] => /1.php
    [argv] => Array
        (
        )

    [argc] => 0
)

На сервере:

Array
(
    [DOCUMENT_ROOT] => /home/z-team.net.ru/data/htdocs
    [HTTP_ACCEPT] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    [HTTP_ACCEPT_CHARSET] => windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
    [HTTP_ACCEPT_ENCODING] => deflate, gzip, x-gzip, identity, *;q=0
    [HTTP_ACCEPT_LANGUAGE] => ru,en;q=0.9
    [HTTP_CONNECTION] => Keep-Alive
    [HTTP_HOST] => www.z-team.net.ru
    [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01
    [PATH] => /sbin:/bin:/usr/sbin:/usr/bin
    [REMOTE_ADDR] => 62.133.182.104
    [REMOTE_PORT] => 1114
    [SCRIPT_FILENAME] => /home/z-team.net.ru/data/htdocs/1.php
    [SERVER_ADDR] => 82.146.41.111
    [SERVER_ADMIN] => zetrider@z-team.net.ru
    [SERVER_NAME] => z-team.net.ru
    [SERVER_PORT] => 80
    [SERVER_SIGNATURE] => 

Apache/1.3.34 Server at z-team.net.ru Port 80


    [SERVER_SOFTWARE] => Apache/1.3.34 (Unix) FrontPage/5.0.2.2623 PHP/4.4.2 mod_ssl/2.8.25 OpenSSL/0.9.7d-p1
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /1.php
    [SCRIPT_NAME] => /1.php
    [PATH_TRANSLATED] => /home/z-team.net.ru/data/htdocs/1.php
    [PHP_SELF] => /1.php
    [argv] => Array
        (
        )

    [argc] => 0
)

   
 
 автор: Shorr Kan   (06.04.2006 в 12:02)   письмо автору
 
   для: ZetRider   (06.04.2006 в 11:56)
 

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat


это - в .htaccess
а лучше - в конфиг апача, так как когда это у меня было в .htaccess - работало ненадежно. Перенес в конфиг апача - стало славно.

   
Rambler's Top100
вверх

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