既然 IP 可以被欺骗,那么如何建立一个正确识别访问者国家的 PHP 网站呢?
问问题
901 次
2 回答
1
鉴于互联网的匿名性,这本质上是一个问题,但无论如何,在大多数地方,欺骗 IP 地址以获取在您所在国家/地区不合法可用的内容在技术上都是犯罪行为。
您需要尽一切合理努力确保您的网站遵循媒体和信息的分发限制,但有些事情是不切实际的。您可以获得的最接近的方法是进行实际的实际地址验证,例如信用卡上的帐单地址或实际邮寄某人的密码以进行注册,但这两种选择都会代表用户或您自己产生费用。
于 2009-12-17T06:34:52.077 回答
0
Joomla一直在使用下面的函数来获取IP地址,这是一个非常通用的好函数,可以避免可能的作弊,你可以使用它:
function get_ip()
{
$ip = false;
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ips = explode (', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip != false)
{
array_unshift($ips,$ip);
$ip = false;
}
$count = count($ips);
# exclude IP addresses reserved for LANs
for ($i = 0; $i < $count; $i++)
{
if (!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i]))
{
$ip = $ips[$i];
break;
}
}
}
if (false == $ip AND isset($_SERVER['REMOTE_ADDR']))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
于 2009-12-17T06:30:36.093 回答