PHP 根据IP地址获取所在城市

php中文网
发布: 2016-06-23 13:56:03
原创
1412人浏览过

有这样的需求,需要根据用户的ip地址,定位用户所在的城市。

本文记录性文章,无逻辑性。有这样需求的朋友,可以直接拷贝使用。直接上代码,不需赘述。

<?phpheader('Content-Type:text/html;Charset=utf-8');function GetIp(){    $realip = '';    $unknown = 'unknown';    if (isset($_SERVER)){        if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);            foreach($arr as $ip){                $ip = trim($ip);                if ($ip != 'unknown'){                    $realip = $ip;                    break;                }            }        }else if(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], $unknown)){            $realip = $_SERVER['HTTP_CLIENT_IP'];        }else if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)){            $realip = $_SERVER['REMOTE_ADDR'];        }else{            $realip = $unknown;        }    }else{        if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), $unknown)){            $realip = getenv("HTTP_X_FORWARDED_FOR");        }else if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), $unknown)){            $realip = getenv("HTTP_CLIENT_IP");        }else if(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), $unknown)){            $realip = getenv("REMOTE_ADDR");        }else{            $realip = $unknown;        }    }    $realip = preg_match("/[\d\.]{7,15}/", $realip, $matches) ? $matches[0] : $unknown;    return $realip;}function GetIpLookup($ip = ''){    if(empty($ip)){        $ip = GetIp();    }    $res = @file_get_contents('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=' . $ip);    if(empty($res)){ return false; }    $jsonMatches = array();    preg_match('#\{.+?\}#', $res, $jsonMatches);    if(!isset($jsonMatches[0])){ return false; }    $json = json_decode($jsonMatches[0], true);    if(isset($json['ret']) && $json['ret'] == 1){        $json['ip'] = $ip;        unset($json['ret']);    }else{        return false;    }    return $json;}$ipInfos = GetIpLookup('123.125.114.144'); //baidu.com IP地址var_dump($ipInfos);
登录后复制

结果截图:


JS自动获取公司位置地址代码
JS自动获取公司位置地址代码

JS自动获取公司位置地址代码是一款原生js百度地图API通过选择公司位置,获取固定地址地图上标注公司地址效果代码。

JS自动获取公司位置地址代码 64
查看详情 JS自动获取公司位置地址代码

立即学习PHP免费学习笔记(深入)”;

使用了新浪的开放API,执行速度还是非常赞的。

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号