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 相关文章推荐
ASP中用Join和Array,可以加快字符连接速度的代码
Aug 22 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
May 13 Javascript
jQuery插件kinMaxShow扩展效果用法实例
May 04 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
javascript实现延时显示提示框特效代码
Apr 27 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
Sep 05 Javascript
js中获取键盘事件的简单实现方法
Oct 10 Javascript
原生js实现省市区三级联动代码分享
Feb 12 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
js实现贪吃蛇小游戏(加墙)
Jul 31 Javascript
基于JavaScript实现简单扫雷游戏
Jan 02 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中的类-什么叫类
2006/11/20 PHP
yii操作cookie实例简介
2014/07/09 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
php导出生成word的方法
2015/12/25 PHP
php简单获取复选框值的方法
2016/05/11 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
python虚拟环境 virtualenv的简单使用
2020/01/21 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
详解vue-router的导航钩子(导航守卫)
2020/11/02 Javascript
python操作xml文件详细介绍
2014/06/09 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
企业指导教师评语
2014/04/28 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
大学生党员承诺书
2014/05/20 职场文书
医药销售自我评价200字
2014/09/11 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
员工工作心得体会
2019/05/07 职场文书
django 认证类配置实现
2021/11/11 Python
Python Pygame实战之塔防游戏的实现
2022/03/17 Python