[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: пренаправление на другой сайт для иногородних
kuzroman
Подскажите,
Есть интернет магазин, уже раскрученный в Москве, открываем еще и в Питере, он менее популярен и в яндексе по нему раскрутка еще не велась, но это все отступление, собственно Задача стоит такая:

Сделать перенаправление с сайта x.ru на y.ru но только для Питерцев.

Возможно ли это? если да то где лучше делать это перенаправление в .htaccess ? или в самом коде?



Спустя 24 минуты, 57 секунд (8.12.2010 - 11:25) Basili4 написал(а):
kuzroman
попробывать geoIP в обще у нас не Европа точности до города нет но я думаю Москава и Питер будут отдельно определятся

Спустя 6 минут, 28 секунд (8.12.2010 - 11:31) kuzroman написал(а):
Вот нашел такой скриптик, кто в теме может объяснит как он работает? Это для вордпресса, но и на сайт думаю прикрутить можно, тогда будет.




Цитата
Для определения удаленного адреса мы воспользуемся autoprepepend-скриптом, т.е -файлом, который добавляется и исполняется перед каждым вашим php-скриптом. Скрипт (автор Grant Burton), кладем в любое место сайта.




autoprepend.inc.php:
/* By Grant Burton @ BURTONTECH.COM (11-30-2008): IP-Proxy-Cluster Fix */
function checkIP($ip) {
if (!empty($ip) && ip2long($ip)!=-1 && ip2long($ip)!=false) {
$private_ips = array (
array('0.0.0.0','2.255.255.255'),
array('10.0.0.0','10.255.255.255'),
array('127.0.0.0','127.255.255.255'),
array('169.254.0.0','169.254.255.255'),
array('172.16.0.0','172.31.255.255'),
array('192.0.2.0','192.0.2.255'),
array('192.168.0.0','192.168.255.255'),
array('255.255.255.0','255.255.255.255')
);


foreach ($private_ips as $r) {
$min = ip2long($r[0]);
$max = ip2long($r[1]);
if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
}
return true;
} else {
return false;
}
}

function determineIP() {
if (checkIP($_SERVER["HTTP_CLIENT_IP"])) {
return $_SERVER["HTTP_CLIENT_IP"];
}
foreach (explode(",",$_SERVER["HTTP_X_FORWARDED_FOR"]) as $ip) {
if (checkIP(trim($ip))) {
return $ip;
}
}

if (checkIP($_SERVER["HTTP_X_FORWARDED"])) {
return $_SERVER["HTTP_X_FORWARDED"];
} elseif (checkIP($_SERVER["HTTP_X_CLUSTER_CLIENT_IP"])) {
return $_SERVER["HTTP_X_CLUSTER_CLIENT_IP"];
} elseif (checkIP($_SERVER["HTTP_FORWARDED_FOR"])) {
return $_SERVER["HTTP_FORWARDED_FOR"];
} elseif (checkIP($_SERVER["HTTP_FORWARDED"])) {
return $_SERVER["HTTP_FORWARDED"];
} else {
return $_SERVER["REMOTE_ADDR"];
}
}

//Override server variable for Wordpress comments
$_SERVER["REMOTE_ADDR"] = determineIP();

Спустя 6 минут, 32 секунды (8.12.2010 - 11:38) Basili4 написал(а):
шаг 1. determineIP() узнаем IP клиента
шаг 2. heckIP($ip)
определяем входит ли адрес клиента в диапозон адресов указаных в массиве $private_ips

array('начало диапозона','конец диапозона'),

если да то возращает true
иначе false

ИМХО глупо перед каждым скриптом вызывать это достаточно 1 раз это сделать и результат хранить в сессии

Спустя 8 минут, 35 секунд (8.12.2010 - 11:47) SlavaFr написал(а):
ну эти функции отделяют локальные ip и опредиляют ip посетителя.
У тебя проблема в другом, тебе нандо узнать пренадлежит ли ip к определенному региону и для этого тебе нужно пользоватся таким сервисом, который эту информацию более или мение актуально опредиляет. http://www.maxmind.com/app/city

Спустя 8 минут, 19 секунд (8.12.2010 - 11:55) kuzroman написал(а):
Я так понимаю что все эти сервисы пользуются какой то базой ip адресов и принадлежности этих ip адресов к конкретному региону или городу.

Интересно тогда есть ли эта база в свободном доступе или есть ли сервис который можно прикрутить к сайту и узнать пользовательский ip и местоположение.

Хотя нужны только питерские ip ну или может быть какие либо другие идентификаторы принадлежности.

Спустя 33 минуты, 47 секунд (8.12.2010 - 12:29) kuzroman написал(а):
Помогите разобраться.
Нашол кое что интересное, на http://blog.ipgeobase.ru/?p=37

сделал форму, как там описано:

<form name = index action = http://194.85.91.253:8090/geo/geo.html method = post>
<textarea
name=address rows="20" cols="80">
</textarea>
<input
type=submit value=OK>
</form>


ответ gh нажати ок приходит в xml. Как можно использовать этот xml ?

Спустя 12 минут, 18 секунд (8.12.2010 - 12:41) kuzroman написал(а):
кажеться с этим можно использовать это)))

$url = 'http://194.85.91.253:8090/geo/geo.html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ".$_SERVER['REMOTE_ADDR'].");
$result = curl_exec($ch);
curl_close($ch);
$doc = new DOMDocument();
$doc->loadXML($result);
$city = $doc->getElementsByTagName(’city’)->item(0)->textContent;


_____________
kuzroman@list.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.