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基本选择器选择元素使用介绍
Apr 18 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
javascript实现获取浏览器版本、操作系统类型
Jan 29 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
js编写的treeview使用方法
Nov 11 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
Oct 12 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 jQuery
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
Sep 17 Javascript
JavaScript对象访问器Getter及Setter原理解析
Dec 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
用PHP生成html分页列表的代码
2007/03/18 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
python实现bitmap数据结构详解
2014/02/17 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
python批量处理txt文件的实例代码
2020/01/13 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
应用艺术专业个人的自我评价
2014/01/03 职场文书
社区母亲节活动方案
2014/03/05 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
入党推优材料
2014/06/02 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
离婚被告代理词
2015/05/23 职场文书
初一年级组工作总结
2015/08/12 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL