| imho.ws |
![]() |
|
|
|
# 1 |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Как определить страну посетителя?
Задача такая: при заходе на сайт надо определить странц посетителя и выдать ему страницу на соотвествующем языке. Языка три - русский, немецкий и английский.
То есть допустим если он из России - то на русском, из Германии - на немецком, всем остальным - на английском. Не подскажет ли кто-либо соотвествующий код на PHP или Perl?
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|
|
|
# 3 |
|
Full Member
Регистрация: 31.08.2003
Адрес: где-то между Марсом и Юпитером
Сообщения: 998
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Есть еще PHP скрипт IP2Country - определяет страну посетителя по его IP. http://www.lugarus.com/modules.php?n...print&sid=4489
__________________
Старые игры раздают здесь |
|
|
|
|
# 7 | |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Кстати, опредедение языка на самом деле было бы лучше. я об этом как раз изначально думал. Но вот вопрос, насколько это осуществимо...
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|
|
|
|
# 8 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
mod_geoip это модуль от www.maxmind.com
есть ещё наш: mod_geo (ftp://ftp.lexa.ru/pub/apache-rus/con...o-2.0.1.tar.gz) |
|
|
|
|
# 9 | |
|
::VIP::
Регистрация: 23.05.2005
Пол: Male
Сообщения: 1 064
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Умный не тот кто все знает, а тот кто знает где узнать то чего он не знает. Life is only what you make it.
|
|
|
|
|
|
# 10 |
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Грубо говоря как-то так
PHP: Код:
if(stristr($HTTP_ACCEPT_LANGUAGE,"ru")) {header("Location: http://rambler.ru");}
elseif(stristr($HTTP_ACCEPT_LANGUAGE,"de")) {header("Location: http://yahoo.de");}
else{header("Location: http://yahoo.com");}
Код:
$lang = lc($ENV{'HTTP_ACCEPT_LANGUAGE'});
if (index($lang, "ru")>-1) {print "Location: http://rambler.ru\n\n";}
elsif (index($lang, "de")>-1) {print "Location: http://yahoo.de\n\n";}
else {print "Location: http://yahoo.com\n\n";}
Код:
if(document.all)lng=navigator.browserLanguage
else lng=navigator.language
lng=lng.toLowerCase()
if (lng.indexOf('ru') > -1) document.location.href = 'http://rambler.ru'
else if (lng.indexOf('de') > -1) document.location.href = 'http://yahoo.de'
else document.location.href = 'http://yahoo.com'
|
|
|
|
|
# 11 |
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
Ну насчет броузера, понятно... ничего тут военного нет, ну у меня к примеру стоит английский, но сайты на русском читаю, если есть возможность, нахожусь на територии СНГ... то почему мне английскую страницу нужно показывать?
Я считаю, что гео-айпи можно вполне поставить и без админа, собственно говоря, в свой движок я встроил его. Очень юзабильно получилось. Все данные хранятся в таблице (MYSQL). Делаеш выборку по айпи - получаешь язык. База его лежит здесь: http://www.maxmind.com/download/geoi...CountryCSV.zip Флаги лежат здесь: http://www.maxmind.com/download/geoip/database/flag.zip Тянешь файл: geo.dat В нем будет нечто такое: Код:
"2.6.190.56","2.6.190.63","33996344","33996351","GB","United Kingdom" "3.0.0.0","4.2.144.255","50331648","67277055","US","United States" "4.2.145.0","4.2.145.63","67277056","67277119","CA","Canada" .... Код:
CREATE TABLE `geoip` ( `id` int(4) unsigned NOT NULL auto_increment, `ip_start` int(6) unsigned NOT NULL default '0', `ip_finish` int(6) unsigned NOT NULL default '0', `prefix` char(2) NOT NULL default '', `country` text NOT NULL, PRIMARY KEY (`id`), KEY `ip_start` (`ip_start`), KEY `ip_finish` (`ip_finish`) ) TYPE=MyISAM COMMENT='GeoIP by Site' Код:
if (file_exists($filename))
{
$GeoLines = file($filename);
reset($GeoLines);
for ($t=0; $t<count($GeoLines); $t++)
{
$String = $GeoLines[$t];
$String = str_replace(array(chr(10),'"'),"",$String);
$String = str_replace("'","`",$String);
$GeoArray = explode(",",$String);
query("INSERT INTO `geoip` SET `ip_start`='$GeoArray[2]', `ip_finish`='$GeoArray[3]', `prefix`='$GeoArray[4]', `country`='$GeoArray[5]'");
}
}
Но я решил использовать базу... мне так показалось надежнее... чем файловая операция с 5-метровым файлом... Удачи!
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... Последний раз редактировалось apoc; 18.08.2005 в 10:01. |
|
|
|
|
# 12 | |
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Цитата:
Это т.е. посетитель должен подбирать себе правильный IP чтоб попасть на нужный язык на 1 (одном) сайте, вместо того чтоб сайт сам настраивался на установки посетителяГеотаргеттинг нужен совсем для другого - напр реклама привязанная к географии (провайдеры, риэлтеры итд), верификация разного рода итд. А определение языка - совсем др тема
|
|
|
|
|
|
# 13 | ||
|
Junior Member
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150
![]() ![]() ![]() ![]() |
Цитата:
ЦИТИРУЮ!!! ВНИМАНИЕ!!! Цитата:
__________________
His name is spelled A-P-O-C, with a C - not APOK, because it originates from the word 'apocalypse'... |
||
|
|
|
|
# 14 | |
|
Junior Member
Регистрация: 22.03.2004
Сообщения: 123
![]() ![]() |
Уважаемый apoc прочтите топик внимательнее, задача уже изменилась:
Цитата:
|
|
|
|