PDA

Просмотр полной версии : ЗА помошь по PHP - Даю шоху!


kiborgg
06.11.2009, 00:32
Необходимо определять пользователь каторый зашол на сайт из РУ или нет.

mr.The
06.11.2009, 01:00
_ttp://www.maxmind.com/app/php

примеры там же. шоху ненадо.

Deathdreams
06.11.2009, 01:01
<?

$ip = getenv('REMOTE_ADDR');
$content = @file_get_contents('http://ipgeo-base.ru/?address='.$ip.'&search=%C8%F1%EA%E0%F2%FC');

if(strpos($content, "Санкт-Петербург")){

echo 'из питера';

}else{

echo ' не из питера';

}

?>



Работает

Redwood
06.11.2009, 02:49
Через Remote Addr получаешь ип и через file get contents c сайта его парсишь и выводишь результат, например отсюда http://smart-ip.net/tools/geoip

kiborgg
06.11.2009, 10:49
Через Remote Addr получаешь ип и через file get contents c сайта его парсишь и выводишь результат, например отсюда http://smart-ip.net/tools/geoip


Можеш написать?

qW1zer
06.11.2009, 10:51
А если есть возможность то качаешь либу geoip и подключаешь к серверу,и все отлично работает!

kiborgg
06.11.2009, 11:09
Возможность есть. Можешеш помоч реализовать? Или пример покажи.

qW1zer
06.11.2009, 11:12
К сожалению примера живого сейчас нет,но ссылка осталась:
http://pecl.php.net/package/geoip
Там и мануал где-то был!

kiborgg
06.11.2009, 11:59
<?php
include("geoip.inc");
$gi = geoip_open("./GeoIP.dat",GEOIP_STANDARD);
$ip = getenv("REMOTE_ADDR");
$code = geoip_country_code_by_addr($gi, $ip);
geoip_close($gi);

if($code == "RU")
{ echo "<script>document.location='http://www.mail.ru'</script>";}
?>

Рабочий вариант=)

mailbrush
06.11.2009, 12:03
<?php
include("geoip.inc");
$gi = geoip_open("./GeoIP.dat",GEOIP_STANDARD);
$ip = getenv("REMOTE_ADDR");
$code = geoip_country_code_by_addr($gi, $ip);
geoip_close($gi);

if($code == "RU")
{ echo "<script>document.location='http://www.mail.ru'</script>";}
?>

Рабочий вариант=)
Не везде модуль geoip стоит :)
<?php

function CheckIP()
{
$ch = curl_init('http://api.hostip.info/get_html.php?ip='.$_SERVER['REMOTE_ADDR']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
if (preg_match('#Country: RUSSIAN FEDERATION (RU)#i', $res, $matches))
return true;
else
return false;
}

if(CheckIP())
{
echo 'Превед медвед, ты из России.';
}
else
{
echo 'Форбидден, акцесс тока русским.';
}

?>

LStr1ke
06.11.2009, 13:10
Не везде модуль geoip стоит
Его можно скачать и подключить как у kiborgg

mailbrush
06.11.2009, 23:52
Его можно скачать и подключить как у kiborgg
Немного хостингов дают права устанавливать модули :)

mr.The
07.11.2009, 00:07
Немного хостингов дают права устанавливать модули
у geoip есть модуль, а есть php файл(_ttp://geolite.maxmind.com/download/geoip/api/php/geoip.inc), который, больше ничего для работы не требует, проме GeoIP.dat.
include("geoip.inc");
$gi = geoip_open("./GeoIP.dat",GEOIP_STANDARD);
линк, с всеми файлами и примерами: _ttp://geolite.maxmind.com/download/geoip/api/php/