欧洲的IP范围?使用PHP进行检测


IP range for Europe? Detect with PHP?

我希望使用PHP和JavaScript实现"Cookie定律"。我认为让其他大陆的用户在打开我的网站时填写表格是毫无意义的,但不幸的是,这是欧盟要求的。

我试着搜索欧洲的IP范围,但一无所获。

我知道我可以使用explode()和$_SERVER['remote_addr']和substr()来隔离特定的IP范围。我面临的问题是要将哪些IP列入黑名单,即194.XXX.XXX.XXX-198.XXX.XXXX.XXX?

此外,实现这一点的最佳方式是什么,使用if-else语句是否有效?我的意思是,如果用户在欧洲,则显示一些JS;如果用户在另一个国家,则显示其他JS。

提前感谢!

您可以使用地理位置数据库,使用PHP中的REMOTE_ADDR来检查国家/地区。

例如,GeoLite提供了一个PHP API库

$ip = $_SERVER['REMOTE_ADDR'];
$country = file_get_contents("http://api.wipmania.com/".$ip."?[YOUR SITE URL]");
$eu_countries = array("BE", "BG", "CZ", "DK", "DE", "EE", "IE", "EL", "ES", "FR", "HR", "IT", "CY", "LV", "LT", "LU", "HU", "MT", "NL", "AT", "PL", "PT", "RO", "SI", "SK", "FI", "SE");
$checked = in_array(strtoupper($country), $eu_countries);