重定向参数 - 如何组合GeoIP,iphone重定向和随机化

时间:2013-09-26 22:50:58

标签: iphone ipad redirect random geoip

我是php的新手,只是想解决一些我自己的任务。 任务是:根据国家/地区,用户代理正确地将用户重定向到多个联盟链接,在某些情况下,我需要随机向几个链接的用户显示用户。

所以,我开始使用以下代码(使用Maxmind geoip):

<?php

include("geoip.inc");

$gi=geoip_open("geoip.dat",GEOIP_STANDARD);
$cc=geoip_country_code_by_addr($gi, getenv('REMOTE_ADDR'));

if($cc=="US")  header("Location: http://domain1.com");
if($cc=="AU")  header("Location: http://domain2.com");
if($cc=="CA")  header("Location: http://domain3.com");

geoip_close($gi);


if(stristr($_SERVER['HTTP_USER_AGENT'],"iPad"))
 {
 header("Location: http://domain4.com");
 }

if(stristr($_SERVER['HTTP_USER_AGENT'],"iPhone"))
 {
 header("Location: http://domain5.com");
 }


$num = Rand (1,3);
switch ($num) { 
case 1: header('Location: http://domain6.com');
break;
case 2: header('Location: http://domain7.com');
break;
case 3: header('Location: http://domain8.com');
break;
}


?>

在代码的第一部分中,我只想重定向来自特定国家/地区的用户,然后是下一部分代码, 来自所有其他国家/地区的用户应重定向到其他剩余链接,Ipad和Iphone用户应从中转到domain4和domain5,其他链接应随机查看6,7或8。 问题是只有第三部分,随机重定向,在代码中工作,GeoIP不起作用。 但是在geoip_close($ gi)之后删除所有内容时; - GeoIP非常完美。

我在代码中错过了什么?也许你看到更简单的方法?问题是,maxmind geoip lite无法识别所有国家,因此流量的一小部分将是未知的 - 这些用户不应该丢失。

我使用了maxmind geocountry lite的“geoip.dat”。它仅支持IPv4地址,问题是如何结合IPv4和IPv6地址的识别。可以同时使用“geoip.dat”和“geoipv6.dat”吗?怎么样?

提前感谢您的帮助!我会感激每一个意见。

0 个答案:

没有答案