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 相关文章推荐
jquery.validate分组验证代码
Mar 17 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
Sep 07 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
javascript验证香港身份证的格式或真实性
Feb 07 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
bing Map 在vue项目中的使用详解
Apr 09 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
vue中使用codemirror的实例详解
Nov 01 Javascript
基于JS实现一个随机生成验证码功能
May 29 Javascript
基于Vue的侧边目录组件的实现
Feb 05 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
javascript 解析url的search方法
2010/02/09 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
2016/09/27 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
js实现交通灯效果
2017/01/13 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
Python监控主机是否存活并以邮件报警
2015/09/22 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
自荐信要包含哪些内容
2013/11/06 职场文书
季度思想汇报
2014/01/01 职场文书
暑期社会实践感言
2014/02/25 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
运动员获奖感言
2014/08/15 职场文书
联谊活动总结
2014/08/28 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
高中教师个人工作总结
2015/02/10 职场文书
水电工程师岗位职责
2015/02/13 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
解析MySQL binlog
2021/06/11 MySQL