Показать сообщение отдельно
Старый 18.08.2005, 09:56     # 11
apoc
Junior Member
 
Аватар для apoc
 
Регистрация: 17.08.2003
Адрес: Украина
Сообщения: 150

apoc Реально крут(а)apoc Реально крут(а)apoc Реально крут(а)apoc Реально крут(а)
Ну насчет броузера, понятно... ничего тут военного нет, ну у меня к примеру стоит английский, но сайты на русском читаю, если есть возможность, нахожусь на територии СНГ... то почему мне английскую страницу нужно показывать?

Я считаю, что гео-айпи можно вполне поставить и без админа, собственно говоря, в свой движок я встроил его. Очень юзабильно получилось. Все данные хранятся в таблице (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]'");
	}
}
В принципе там у них есть и просто бинарный файл и алгоритм работы с ним... CNSTATS к примеру так работает...

Но я решил использовать базу... мне так показалось надежнее... чем файловая операция с 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.
apoc вне форума