设为首页 收藏本站
查看: 2142|回复: 3

[经验分享] php查询IP地址归属等信息

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-1-10 10:03:20 | 显示全部楼层 |阅读模式
淘宝公司提供了一个很好用的IP地理信息查询接口。
在这里:http://ip.taobao.com/
TaobaoIPQuery2这个类将极大的简化相关的信息查询。

类 TaobaoIPQuery2 文件:
<?php/* Usage: * $IPInfo = TaobaoIPQuery2::getIPInfo('IPAddress');
http://www.iyunv.com/roucheng/ */Class TaobaoIPQuery2{    private static $_requestURL = 'http://ip.taobao.com/service/getIpInfo.php';    public static function getIPInfo($ip){        $long = ip2long($ip);        if($long === 0){            throw new Exception('IP address error', 5);        }        $ip=long2ip($long);        $IPInfo = self::queryIPInfo($ip);        return self::parseJSON($IPInfo);    }        private static function queryIPInfo($ip){        $query = http_build_query(array('ip'=>$ip));        $ch = curl_init();        $options = array(            CURLOPT_URL => sprintf('%s?%s', self::$_requestURL, $query),            CURLOPT_RETURNTRANSFER => true,            CURLOPT_AUTOREFERER => false,            CURLOPT_FOLLOWLOCATION => false,            CURLOPT_HEADER => false,            CURLOPT_TIMEOUT => 3.0,        );        curl_setopt_array($ch, $options);        $content = curl_exec($ch);        curl_close($ch);        return $content;    }        private static function parseJSON($json){        $O = json_decode ($json, true);        if(false === is_null($O)){            return $O;        }        if (version_compare(PHP_VERSION, '5.3.0', '>=')) {            $errorCode = json_last_error();            if(isset(self::$_JSONParseError[$errorCode])){                throw new Exception(self::$_JSONParseError[$errorCode], 5);            }        }        throw new Exception('JSON parse error', 5);    }        private static $_JSONParseError = array(        JSON_ERROR_NONE=>'No error has occurred',           JSON_ERROR_DEPTH=>'The maximum stack depth has been exceeded',           JSON_ERROR_CTRL_CHAR=>'Control character error, possibly incorrectly encoded',           JSON_ERROR_STATE_MISMATCH=>'Invalid or malformed JSON',           JSON_ERROR_SYNTAX=>'Syntax error',           JSON_ERROR_UTF8=>'Malformed UTF-8 characters, possibly incorrectly encoded',    );}TaobaoIPQuery2.Class.php:<?phpClass TaobaoIPQuery2{    private static $_requestURL = 'http://ip.taobao.com/service/getIpInfo.php';    public static function getIPInfo($ip){        $long = ip2long($ip);        if($long === 0){            throw new Exception('IP address error', 5);        }        $ip=long2ip($long);        $IPInfo = self::queryIPInfo($ip);        return self::parseJSON($IPInfo);    }        private static function queryIPInfo($ip){        $query = http_build_query(array('ip'=>$ip));        $ch = curl_init();        $options = array(            CURLOPT_URL => sprintf('%s?%s', self::$_requestURL, $query),            CURLOPT_RETURNTRANSFER => true,            CURLOPT_AUTOREFERER => false,            CURLOPT_FOLLOWLOCATION => false,            CURLOPT_HEADER => false,            CURLOPT_TIMEOUT => 3.0,        );        curl_setopt_array($ch, $options);        $content = curl_exec($ch);        curl_close($ch);        return $content;    }        private static function parseJSON($json){        $O = json_decode ($json, true);        if(false === is_null($O)){            return $O;        }        if (version_compare(PHP_VERSION, '5.3.0', '>=')) {            $errorCode = json_last_error();            if(isset(self::$_JSONParseError[$errorCode])){                throw new Exception(self::$_JSONParseError[$errorCode], 5);            }        }        throw new Exception('JSON parse error', 5);    }    /* http://www.iyunv.com/roucheng/ */    private static $_JSONParseError = array(        JSON_ERROR_NONE=>'No error has occurred',           JSON_ERROR_DEPTH=>'The maximum stack depth has been exceeded',           JSON_ERROR_CTRL_CHAR=>'Control character error, possibly incorrectly encoded',           JSON_ERROR_STATE_MISMATCH=>'Invalid or malformed JSON',           JSON_ERROR_SYNTAX=>'Syntax error',           JSON_ERROR_UTF8=>'Malformed UTF-8 characters, possibly incorrectly encoded',    );}调用:$ip = $_SERVER["REMOTE_ADDR"];$ipquery = new taobaoIPQuery($ip);$region = $ipquery->get_region();$country = $ipquery->get_country();$city = $ipquery->get_city();  另外新浪也提供接口:http://ipapi.sinaapp.com/



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-13820-1-1.html 上篇帖子: BackTrack5(BT5)硬盘安装完美教程 下篇帖子: PHP伪造referer突破防盗链 IP地址 信息

尚未签到

发表于 2014-1-10 15:04:24 | 显示全部楼层
额对你忍无可忍,请伱自重

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-10 18:00:45 | 显示全部楼层
我不想理的人,便不理,我想理的人,却不理我。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2014-1-10 19:02:49 | 显示全部楼层
要怎么证明,你的亲吻真的残忍.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表