Node.js和PHP根据ip获取地理位置的方法


Posted in Javascript onMarch 14, 2014

一、Node.js实现代码

var http = require('http');
var util = require('util');/**
 * 根据 ip 获取获取地址信息
 */
var getIpInfo = function(ip, cb) {
    var sina_server = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=';
    var url = sina_server + ip;
    http.get(url, function(res) {
        var code = res.statusCode;
        if (code == 200) {
            res.on('data', function(data) {
                try {
                    cb(null, JSON.parse(data));
                } catch (err) {
                    cb(err);
                }
            });
        } else {
            cb({ code: code });
        }
    }).on('error', function(e) { cb(e); });
};
getIpInfo('220.181.111.85', function(err, msg) {
    console.log('城市: ' + msg.city);
    console.log('msg: ' + util.inspect(msg, true, 8));
})

请求结果:
城市: 徐州
{
    "ret": 1,
    "start": "49.68.0.0",
    "end": "49.68.255.255",
    "country": "中国",
    "province": "江苏",
    "city": "徐州",
    "district": "",
    "isp": "电信",
    "type": "",
    "desc": ""
}

二、PHP实现代码
<?$ip = "220.181.111.85";
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip";
$data = file_get_contents($url);
$result = json_decode($data);
echo "城市:" . $result->city . "<br>";
print_r($result);
?>

请求结果:
城市:徐州
stdClass Object
(
    [ret] => 1
    [start] => 49.68.0.0
    [end] => 49.68.255.255
    [country] => 中国
    [province] => 江苏
    [city] => 徐州
    [district] => 
    [isp] => 电信
    [type] => 
    [desc] =>
)

Javascript 相关文章推荐
优化JavaScript脚本的性能的几个注意事项
Dec 22 Javascript
utf8的编码算法 转载
Dec 27 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
Jan 09 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
jQuery中wrapAll()方法用法实例
Jan 16 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
Feb 27 Javascript
js实现简单div拖拽功能实例
May 12 Javascript
JS绘制生成花瓣效果的方法
Aug 05 Javascript
JS跨域请求外部服务器的资源
Feb 06 Javascript
js中getter和setter用法实例分析
Aug 14 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
JavaScript ES6 Class类实现原理详解
May 08 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 #Javascript
javascript回车完美实现tab切换功能
Mar 13 #Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
Mar 13 #Javascript
JQuery中extend使用介绍
Mar 13 #Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 #Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
Mar 13 #Javascript
利用try-catch判断变量是已声明未声明还是未赋值
Mar 12 #Javascript
You might like
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
2016/03/14 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
详解js类型判断
2018/05/22 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
python del()函数用法
2013/03/24 Python
Python实现快速多线程ping的方法
2015/07/15 Python
python区块及区块链的开发详解
2019/07/03 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
大学军训通讯稿
2014/01/13 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
班级学习计划书
2014/04/27 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
党委工作总结2015
2015/04/27 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android