這篇文章主要介紹了Node.js和PHP根據ip擷取地理位置的方法,通過新浪介面根據IP地址擷取所在城市,需要的朋友可以參考下一、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] =>)