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 相关文章推荐
js的with语句使用方法
Sep 21 Javascript
关于JavaScript与HTML的交互事件
Apr 12 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
file控件选择上传文件确定后触发的js事件是哪个
Mar 17 Javascript
原生js和jquery实现图片轮播特效
Apr 23 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 Javascript
JS实现商品筛选功能
Aug 19 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
2014/12/05 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
javascript遍历json对象的key和任意js对象属性实例
2017/03/09 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
2017/09/25 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
Python字符串转换成浮点数函数分享
2015/07/24 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
美国创意之家:BulbHead
2017/07/12 全球购物
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
小学生学习雷锋倡议书
2014/05/15 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
导游词之无锡唐城
2019/12/12 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
python基于opencv批量生成验证码的示例
2021/04/28 Python
redis哨兵常用命令和监控示例详解
2021/05/27 Redis