文章506
标签266
分类65

两行Nginx代码获取访问者的公网IP

今天在RSS上看到的内容,无需配置后台,利用Nginx即可返回访问者的公网IP地址;

感觉挺实用的,就翻译了一下;


两行Nginx代码获取访问者的公网IP

无需配置后台,利用Nginx即可返回访问者的公网IP地址;

① 返回普通文本格式

添加一个/ip路径的映射,并配置为:

location /ip {
    default_type text/plain;
    return 200 $remote_addr;
}

调用返回结果如下:

$ curl https://example.com/ip
2001:1b48:103::189

default_type text/plain阻止了浏览器尝试将响应下载为文件;

即,此时Web浏览器可以直接显示IP地址;

② 返回json格式

添加一个/json_ip的路径,如下:

location /json_ip {
    default_type application/json;
    return 200 "{\"ip\":\"$remote_addr\"}";
}

现在,响应是一个JSON格式:

$ curl -s https://example.com/json_ip | jq
{
    "ip": "2001:1b48:103::189"
}

附录

文章参考:



本文作者:Jasonkay
本文链接:https://jasonkayzk.github.io/2020/11/13/两行Nginx代码获取公网IP/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可