Node.js和PHP根据ip获取地理位置的方法

前端技术 2023/09/07 JavaScript
一、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] =>
)

本文地址:https://www.stayed.cn/item/18981

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。