只需兩行配置,Nginx 即可快速獲取客戶端公網 IP 的神技,你掌握了嗎?
- 2019 年 11 月 24 日
- 筆記
本文將給大家介紹一個 Nginx
的小技巧,可以在不使用任何程式語言的情況下,直接返回客戶端公網 IP
地址。
實現方法非常的簡單,你只要在 Nginx
中配置以下內容就可以解決問題。
location /ip { default_type text/plain; return 200 $remote_addr;}
使用 curl
命令測試一下,我們從響應結果可以看到只顯示了客戶端的 IP
地址。
$ curl https://example.com/ip2001:1b48:103::189
default_type text/plain
指令除了阻止Web
瀏覽器嘗試將響應下載為文件外,並沒有使用任何實用程式。即,Web
瀏覽器可以直接顯示IP
地址。
如果你想將以上結果以 JSON
格式輸出,只需做一點小修改即可實現。具體方法如下:
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"}
至此,快速通過 Nginx
獲取客戶端公網 IP
地址的小技巧就演示完了。希望這個 Nginx
的小技巧可以為你節省一些維護時間。
本文翻譯至:https://url.cn/5Th0D1e,版權歸原作者所有