从国家重定向中排除 IP 地址
Posted
技术标签:
【中文标题】从国家重定向中排除 IP 地址【英文标题】:Excluding IP addresses from Country Redirection 【发布时间】:2013-04-10 15:07:34 【问题描述】:我有这段代码,目前可以将加拿大的任何人重定向到我们网站的加拿大版本:
<?php
require_once('geoip.inc');
$gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE);
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
// prints the country code your visitor is in
if($country == 'CA')
header('Location: http://www.WEBSITE.ca');
exit();
// the end
geoip_close($gi);?>
我想知道如何才能将加拿大某人的 IP 地址排除在自动重定向之外,以便他们也可以访问我们网站的美国和欧盟版本?
【问题讨论】:
【参考方案1】:您可以在 if 语句中添加另一个条件。
$ip = $_SERVER['REMOTE_ADDR'];
if($country == 'CA' && $ip !== '127.0.0.1')
header('Location: http://www.WEBSITE.ca');
exit();
$ip 将是当前正在查看该站点的人的 IP 地址。 您可以通过以下方式获得:
$_SERVER['REMOTE_ADDR'];
【讨论】:
OP 还应该允许用户选择他们是否希望被重定向,并将该偏好存储在 Session 变量中。【参考方案2】:在if
语句中使用&&
添加附加条件,例如“远程地址不等于此字符串”。
【讨论】:
以上是关于从国家重定向中排除 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章