How node. js and PHP get geographical locations based on IP
- 2020-03-30 02:23:55
- OfStack
Node.js implementation code
Result of request:
Two, PHP implementation code
Result of request:
var http = require('http');
var util = require('util');
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(' city : ' + msg.city);
console.log('msg: ' + util.inspect(msg, true, 8));
})
Result of request:
city : xuzhou
{
"ret": 1,
"start": "49.68.0.0",
"end": "49.68.255.255",
"country": " China ",
"province": " jiangsu ",
"city": " xuzhou ",
"district": "",
"isp": " telecom ",
"type": "",
"desc": ""
}
Two, PHP implementation code
<?
$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 " city :" . $result->city . "<br>";
print_r($result);
?>
Result of request:
city : xuzhou
stdClass Object
(
[ret] => 1
[start] => 49.68.0.0
[end] => 49.68.255.255
[country] => China
[province] => jiangsu
[city] => xuzhou
[district] =>
[isp] => telecom
[type] =>
[desc] =>
)