答案 0 :(得分:0)
您必须使用某些API来获取用户/访问者的国家/地区,例如下面的内容。
http://www.geoplugin.net/json.gp?ip=62.4.159.255
输出
{
"geoplugin_request":"62.4.159.255",
"geoplugin_status":206,
"geoplugin_credit":"Some of the returned data includes GeoLite data created by MaxMind, available from <a href=\\'http:\/\/www.maxmind.com\\'>http:\/\/www.maxmind.com<\/a>.",
"geoplugin_city":"",
"geoplugin_region":"",
"geoplugin_areaCode":"0",
"geoplugin_dmaCode":"0",
"geoplugin_countryCode":"BE",
"geoplugin_countryName":"Belgium",
"geoplugin_continentCode":"EU",
"geoplugin_latitude":"50.849998",
"geoplugin_longitude":"4.35",
"geoplugin_regionCode":"",
"geoplugin_regionName":null,
"geoplugin_currencyCode":"EUR",
"geoplugin_currencySymbol":"€",
"geoplugin_currencySymbol_UTF8":"\u20ac",
"geoplugin_currencyConverter":0.9098
}
代码示例可在this page上找到。
答案 1 :(得分:0)
使用此第三方库
返回json编码信息
$ip
ip待验证
$location = json_decode(file_get_contents('http://freegeoip.net/json/' . $ip));
var_dump($location)
比较$ location数组中的国家/地区
答案 2 :(得分:0)
建议的解决方案需要一些基本的编程和数据库技能。由于您没有提到要求,我将在代码中使用广泛使用的PHP和mySQL进行解释。
下载并将IP2Location LITE DB1数据库加载到mySQL中。您可以从页面https://lite.ip2location.com/database-ip-country
在需要检测的PHP页面中添加以下代码。
//配置MySQL连接$ host =&#39; localhost&#39 ;; $ user =&#39; root&#39 ;; $ password =&#39; YOUR_PASSWORD&#39 ;; $ database =&#39; ip2location_database&#39 ;; $ table_name =&#39; ip2location_db1&#39;;
//获取访问者IP地址$ ip = $ _SERVER [&#39; REMOTE_ADDR&#39;];
//如果您使用127.0.0.1进行本地测试,//可以取消注释 以下行将IP地址//分配给8.8.8.8(或其他) 你的测试。 // $ ip =&#39; 8.8.8.8&#39;;
尝试{//使用PDO $ db = new创建并执行SQL查询 PDO(&#39; mysql:host =&#39;。$ host。&#39 ;; dbname =&#39;。$ database。&#39 ;; charset = utf8&#39;, $ user,$ password); $ DB-&GT;的setAttribute(PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
$ st = $ db-&gt; prepare(&#39; SELECT * FROM
' . $table_name . '
WHERE INET_ATON(:ip)&lt; = ip_to LIMIT 1&#39;); $ ST-&GT;执行(阵列(&#39;命令ip&#39; = GT; $ IP));$ row = $ st-&gt; fetch(PDO :: FETCH_ASSOC);
//打印出结果var_dump($ row); } catch(PDOException $ e){ echo $ e-&gt; getMessage(); }