function getIpAddress($ip = ''){ // ip属地(来自太平洋电脑网) if(empty($ip)){ $ip = $_REQUEST['ip']; if(empty($ip)) die('请传输ip地址'); // 根据实际调用方式去返回数据 } $ch = curl_init(); $url = 'https://whois.pconline.com.cn/ipJson.jsp?ip=' . $ip; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); $data = mb_convert_encoding($data, 'utf-8', 'GB2312'); // 转换编码 // 截取{}中的字符串 $data = substr($data, strlen('({') + strpos($data, '({'), (strlen($data) - strpos($data, '})')) * (-1)); // 将截取的字符串$data中的‘,’替换成‘&’ 将字符串中的‘:‘替换成‘=’ $data = str_replace('"', "", str_replace(":", "=", str_replace(",", "&", $data))); parse_str($data, $addressInfo); // 将字符串转换成数组格式 //return $addressInfo['addr']; // 返回ip归属地,如:四川省成都市 电信ADS return $addressInfo['pro']; // 返回ip归属地,如:四川省 //return $addressInfo['city']; // 返回ip归属地,如:成都市 }
以上代码源于20220705网络,我们需要把代码加入DESTOON自定义函数php文件中,文件位置 api/extend.func.php
前端调取的方式
不管在任意地方,首先你要得到原生ip的标签,在标签外面加上即可,如:
{getIpAddress($ip)}
注意:在不同的地方 $ip 有不同的写法,如:loop里用的是 $t[ip],公司商铺显示注册ip用的是 $COM[regip],会员登录ip用的是 $COM[loginip]
显示结果图展(我们这里只显示了省,你可以显示城市或者 省+城市),注意看php函数的注解。