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 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
读JavaScript DOM编程艺术笔记
Nov 15 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
Dec 12 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
Dec 29 Javascript
深入浅析javascript立即执行函数
Oct 23 Javascript
JS实现一个简单的日历
Feb 22 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
Apr 28 Javascript
JS实现的走迷宫小游戏完整实例
Jul 19 Javascript
Vue学习笔记进阶篇之函数化组件解析
Jul 21 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
Feb 26 Javascript
jQuery实现鼠标滑动切换图片
May 27 jQuery
弹出窗口并且此窗口带有半透明的遮罩层效果
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自动适应范围的分页代码
2008/08/05 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
php基本函数汇总
2015/07/09 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
2020/04/26 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
PyTorch笔记之scatter()函数的使用
2020/02/12 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
PyQt5实现登录页面
2020/05/30 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
综合测评自我鉴定
2013/10/08 职场文书
司法助理专业自荐书
2014/06/13 职场文书
租房协议书范例
2014/10/14 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python