如何查看该国家是否是澳大利亚?如果国家是澳大利亚,我需要设置一个会话。
207.209.7.0 | 207.209.7.255
这是澳大利亚的IP范围。
如何在没有数据库的情况下使用$_SERVER['REMOTE_ADDR']
,只需使用简单的if语句
答案 0 :(得分:1)
首先,你应该知道这不能保证。人们可以绕过它,数据永远不会100%完成等等。
简单地检查IP块是不可接受的。您需要使用地理分析数据库,例如MaxMind's GeoIP。免费数据库足以用于国家级地理位置。
答案 1 :(得分:0)
查看this question有关如何在php中检测某人的位置的信息。然后添加你的条件。
由于您不想使用数据库,我建议
$doc->loadXML(file_get_contents("http://api.ipinfodb.com/v2/ip_query.php?key=your_key&ip=" . $_SERVER['REMOTE_ADDR'] . "&timezone=false"));
$country = $doc->getElementsByTagName('CountryName')->item(0)->nodeValue;
if ($country == 'australia') {
// set session
}
答案 2 :(得分:0)
如果你完全知道有效IP地址的范围,你可以这样做:
function ip2number($IP) {
$parts = explode('.', $IP);
if(count($parts) != 4) return 0;
return ($parts[3] + $parts[2] * 256 + $parts[1] * 256 * 256 + $parts[0] * 256 * 256 * 256);
}
$num = ip2number($_SERVER['REMOTE_ADDR']);
if($num >= ip2number('207.209.7.0') && $num <= ip2number('207.209.7.255')) {
echo "Valid";
}
就像布拉德所说的那样,它并不能保证并且有很多方法,你必须及时了解有效的IP地址范围。