Node.js和PHP根據(jù)ip獲取地理位置的方法
更新時(shí)間:2014年03月14日 09:07:32 作者:
這篇文章主要介紹了Node.js和PHP根據(jù)ip獲取地理位置的方法,通過(guò)新浪接口根據(jù)IP地址獲取所在城市,需要的朋友可以參考下
一、Node.js實(shí)現(xiàn)代碼
var http = require('http');
var util = require('util');
/**
* 根據(jù) 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));
})
請(qǐng)求結(jié)果:
二、PHP實(shí)現(xiàn)代碼
請(qǐng)求結(jié)果:
復(fù)制代碼 代碼如下:
var http = require('http');
var util = require('util');
/**
* 根據(jù) 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));
})
請(qǐng)求結(jié)果:
復(fù)制代碼 代碼如下:
城市: 徐州
{
"ret": 1,
"start": "49.68.0.0",
"end": "49.68.255.255",
"country": "中國(guó)",
"province": "江蘇",
"city": "徐州",
"district": "",
"isp": "電信",
"type": "",
"desc": ""
}
{
"ret": 1,
"start": "49.68.0.0",
"end": "49.68.255.255",
"country": "中國(guó)",
"province": "江蘇",
"city": "徐州",
"district": "",
"isp": "電信",
"type": "",
"desc": ""
}
二、PHP實(shí)現(xiàn)代碼
復(fù)制代碼 代碼如下:
<?
$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);
?>
$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);
?>
請(qǐng)求結(jié)果:
復(fù)制代碼 代碼如下:
城市:徐州
stdClass Object
(
[ret] => 1
[start] => 49.68.0.0
[end] => 49.68.255.255
[country] => 中國(guó)
[province] => 江蘇
[city] => 徐州
[district] =>
[isp] => 電信
[type] =>
[desc] =>
)
stdClass Object
(
[ret] => 1
[start] => 49.68.0.0
[end] => 49.68.255.255
[country] => 中國(guó)
[province] => 江蘇
[city] => 徐州
[district] =>
[isp] => 電信
[type] =>
[desc] =>
)
相關(guān)文章
通過(guò)正則表達(dá)式實(shí)現(xiàn)表單驗(yàn)證是否為中文
正如標(biāo)題所言判斷一個(gè)輸入量是否為中文,通過(guò)正則表達(dá)式實(shí)現(xiàn),需要的朋友可以參考下2014-02-02JavaScript仿小米實(shí)現(xiàn)球體分解動(dòng)畫(huà)
用過(guò)小米手機(jī)的應(yīng)該見(jiàn)過(guò)它的垃圾清理ui界面吧,本文將利用JavaScript模擬這一界面實(shí)現(xiàn)球體分解動(dòng)畫(huà),感興趣的小伙伴可以學(xué)習(xí)一下2022-06-06layui 表格操作列按鈕動(dòng)態(tài)顯示的實(shí)現(xiàn)方法
今天小編就為大家分享一篇layui 表格操作列按鈕動(dòng)態(tài)顯示的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09原生javascript實(shí)現(xiàn)的ajax異步封裝功能示例
這篇文章主要介紹了原生javascript實(shí)現(xiàn)的ajax異步封裝功能,結(jié)合完整實(shí)例形式分析了原生javascript實(shí)現(xiàn)的ajax異步交互函數(shù)與相應(yīng)的使用方法,需要的朋友可以參考下2016-11-11JavaScript中利用構(gòu)造器函數(shù)模擬類(lèi)的方法
JavaScript中沒(méi)有類(lèi)的概念,所以其在對(duì)象創(chuàng)建方面與面向?qū)ο笳Z(yǔ)言有所不同。這篇文章主要介紹了JavaScript中利用構(gòu)造器函數(shù)模擬類(lèi)的方法,文中給出了詳細(xì)的示例代碼和介紹,需要的朋友可以參考下,下面一起看看吧。2017-02-02傾力總結(jié)40條常見(jiàn)的移動(dòng)端Web頁(yè)面問(wèn)題解決方案
移動(dòng)端Web需要照顧觸摸操作的體驗(yàn),以及更多的屏幕旋轉(zhuǎn)與尺寸適配等問(wèn)題,非常瑣碎,在這里為大家傾力總結(jié)40條常見(jiàn)的移動(dòng)端Web頁(yè)面問(wèn)題解決方案,歡迎收看收藏!2016-05-05JS+HTML5 FileReader對(duì)象用法示例
這篇文章主要介紹了JS+HTML5 FileReader對(duì)象用法,結(jié)合具體實(shí)例形式分析了FileReader對(duì)象的常用方法及簡(jiǎn)單使用技巧,需要的朋友可以參考下2017-04-04