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 特殊字符
Apr 05 Javascript
用方法封装javascript的new操作符(一)
Dec 25 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
通过bootstrap全面学习less
Nov 09 Javascript
js实现音频控制进度条功能
Apr 01 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
JS中双击和单击事件冲突的解决方法
Apr 09 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
jQuery实现表格隔行换色
Sep 01 jQuery
Vue数字输入框组件使用方法详解
Feb 10 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
Jun 22 Javascript
VUE Elemen-ui之穿梭框使用方法详解
Jan 19 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
js几个验证函数代码
2010/03/25 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中List.index()方法的使用教程
2015/05/20 Python
Python中字符串的修改及传参详解
2016/11/30 Python
浅谈Django的缓存机制
2018/08/23 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
意大利在线药房:Saninforma
2021/02/11 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
2014年司法局工作总结
2014/12/11 职场文书
工作简报格式范文
2015/07/21 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
工作简历的自我评价
2019/05/16 职场文书
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android