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的数据类型、字面量、变量介绍
May 23 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
利用a标签自动解析URL分析网址实例
Oct 20 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
Apr 21 Javascript
jQuery.ajax向后台传递数组问题的解决方法
May 12 jQuery
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
Vue安装浏览器开发工具的步骤详解
May 12 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
Aug 13 Javascript
微信小程序用户授权最佳实践指南
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
如何去掉文章里的 html 语法
2006/10/09 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python判断是空的实例分享
2020/07/06 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
个人自荐书怎么写
2015/03/26 职场文书
工作失职自我检讨书
2015/05/05 职场文书
改进工作作风心得体会
2016/01/23 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS