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中为String对象添加trim,ltrim,rtrim方法
Sep 22 Javascript
javascript 禁止复制网页
Jun 11 Javascript
jquery鼠标滑过提示title具体实现代码
Aug 06 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
javascript中call apply 与 bind方法详解
Mar 10 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
JavaScript常用数学函数用法示例
May 14 Javascript
实例详解Node.js 函数
Jun 10 Javascript
基于vue手写tree插件的那点事儿
Aug 20 Javascript
JS控制只能输入数字并且最多允许小数点两位
Nov 24 Javascript
jquery实现简单拖拽效果
Jul 20 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与已存在的Java应用程序集成
2006/10/09 PHP
php 魔术方法使用说明
2009/10/20 PHP
php实现文件编码批量转换
2014/03/10 PHP
PHP小教程之实现双向链表
2014/06/12 PHP
PHP在线书签系统分享
2016/01/04 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
Python中的模块和包概念介绍
2015/04/13 Python
python 多线程实现检测服务器在线情况
2015/11/25 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
numpy.where() 用法详解
2019/05/27 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python接口开发实现步骤详解
2020/04/26 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
电子信息工程专业推荐信
2014/02/14 职场文书
中华魂演讲稿
2014/05/13 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android