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 相关文章推荐
js 事件小结 表格区别
Aug 13 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
Oct 23 Javascript
JavaScript框架(iframe)操作总结
Apr 16 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
JQuery为元素添加样式的实现方法
Jul 20 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 Javascript
通过angular CDK实现页面元素拖放的步骤详解
Jul 01 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
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php简单获取复选框值的方法
2016/05/11 PHP
php中序列化与反序列化详解
2017/02/13 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
python 打印对象的所有属性值的方法
2016/09/11 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
实例介绍Python中整型
2019/02/11 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Python3 批量扫描端口的例子
2019/07/25 Python
安装PyInstaller失败问题解决
2019/12/14 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
大学生个人实习的自我评价
2014/02/15 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
初三化学教学反思
2016/02/22 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
MySQL Server 层四个日志
2022/03/31 MySQL