php程序 js判断ip地区根据不同ip输出不同内容(商务通代码)

php程序 js判断ip地区根据不同ip输出不同内容(商务通代码),第1张

不建议使用js进行这个处理,你这样做的话完整过程为

1 用户访问php页面

2 服务端输出html

3 浏览器运行js检查ip所属区域

4 ajax方式提交区域信息给服务器

5 服务器返回查询结果

6 js将查询结果显示到当前页面

你想想这要多长时间。因此最好是php端直接判断区域,然后直接查询并输出就行了。

提供一个php写的函数,如果有用望采纳

function getCityByUserIp() {
    $ip = false;
    if (isset($_SERVER)){
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
            $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $ip = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (getenv("HTTP_X_FORWARDED_FOR")){
            $ip = getenv("HTTP_X_FORWARDED_FOR");
        } else if (getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } else {
            $ip = getenv("REMOTE_ADDR");
        }
    }
    if (false === $ip) {
        return false;
    }
    $file = fopen('http://intdpoolsinacomcn/iplookup/iplookupphpformat=js&ip=' $ip, 'r');
    $content = fread($file, 1024);
    fclose($file);
    if (! preg_match("/^var remote_ip_info = (\\{[^\\}]+\\});$/", $content, $_match)) {
        return false;
    }
    $ipInfo = json_decode($_match[1]);
    return $ipInfo;
}

返回的数组中包括 country, province, city等,如果返回false表示无法获得ip或该ip没有在大陆地区匹配的记录(港澳台似乎有province,但是没有city)。

以上就是关于php程序 js判断ip地区根据不同ip输出不同内容(商务通代码)全部的内容,包括:php程序 js判断ip地区根据不同ip输出不同内容(商务通代码)、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10631999.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存