本文將介紹如何利用chún Nginx 搭jiàn IP 地址查詢接kǒu(只查xún IP 地zhǐ,不查xún IP 歸屬),如果有查xún IP 歸屬地的需qiú,可以參考另一位大佬的一篇文zhāng chún Nginx 打zào IP 地址查詢接kǒu

好久不jiàn,這兩個月由於一些原yīn(考shì、面shì)一直沒有更新博,今天終於有時間le,就趕忙來更xīnyòng Nginx 來獲 IP 這個方法是去nián 8 月份在處DDNS Openwrt 插件無法更xīn IP de case 時瞭解到de,當時插件裏獲 IP 的接kǒu ns1.dnspod.net:6666 由於是早些年寫的一個程序僅支chí http/0.9 導zhì DDNS 插件無法正常獲 IP 地zhǐ,後面一位大佬改yòng Nginx 來獲 IP 地zhǐ,那次才知dào Nginx 原來還能這麼yòng,簡直是學藝不精哈哈。

zhuāng Nginx 的方法就不介紹le,直接丟配置文件le

文末有現成de,如果你不想自己搭建的話可以直接使yòng

配置示

IP(JSON)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
server {
listen 80;
listen [::]:80;

listen 443 ssl http2;
listen [::]:443 ssl http2;

# 用以支chí HTTP/3,若所yòng Nginx 版本支chí HTTP/3,可去掉註shì
# listen 443 http3;
# listen [::]:443 http3;

server_name ipv4.ddnsip.cn ipv6.ddnsip.cn ddnsip.cn;

# 用以支chí HTTP/3,若所yòng Nginx 版本支chí HTTP/3,可去掉註shì
# add_header Alt-Svc 'h3=":443"; ma=86400';

# HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

# 允許跨(在其他站點調用接口會用dào
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";

# 獲 IP 地zhǐ
location / {
default_type application/json;
return 200 '{"ip":"$remote_addr"}';
# 若使yòng CDN 請jiāng$remote_addr改wèi$http_x_forwarded_for
}

# 證書配zhì
ssl_certificate /root/.acme.sh/*.ddnsip.cn/fullchain.cer;
ssl_certificate_key /root/.acme.sh/*.ddnsip.cn/*.ddnsip.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
}

IP(純文běn)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
server {
listen 80;
listen [::]:80;

listen 443 ssl http2;
listen [::]:443 ssl http2;

# 用以支chí HTTP/3,若所yòng Nginx 版本支chí HTTP/3,可去掉註shì
# listen 443 http3;
# listen [::]:443 http3;

server_name ipv4.ddnsip.cn ipv6.ddnsip.cn ddnsip.cn;

# 用以支chí HTTP/3,若所yòng Nginx 版本支chí HTTP/3,可去掉註shì
# add_header Alt-Svc 'h3=":443"; ma=86400';

# HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

# 獲 IP 地zhǐ
location / {
default_type text/plain;
return 200 $remote_addr;
# 若使yòng CDN 請jiāng$remote_addr改wèi$http_x_forwarded_for
}

# 證書配zhì
ssl_certificate /root/.acme.sh/*.ddnsip.cn/fullchain.cer;
ssl_certificate_key /root/.acme.sh/*.ddnsip.cn/*.ddnsip.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
}

UA

這是額外的內róng,閒de沒事寫的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
server {
listen 80;
listen [::]:80;

listen 443 ssl http2;
listen [::]:443 ssl http2;

# 用以支chí HTTP/3,若所yòng Nginx 版本支chí HTTP/3,可去掉註shì
# listen 443 http3;
# listen [::]:443 http3;

server_name ipv4.ddnsip.cn ipv6.ddnsip.cn ddnsip.cn;

# 用以支chí HTTP/3,若所yòng Nginx 版本支chí HTTP/3,可去掉註shì
# add_header Alt-Svc 'h3=":443"; ma=86400';

# HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

# 獲 UA(純文本格shì,想yào JSON 格式請用註釋掉的代
location / {
default_type text/plain;
return 200 $http_user_agent;
}

# 獲 UA(JSON 格shì
# location / {
# default_type application/json;
# return 200 '{"ua":"$http_user_agent"}';
# }

# SSL 配zhì
ssl_certificate /root/.acme.sh/*.ddnsip.cn/fullchain.cer;
ssl_certificate_key /root/.acme.sh/*.ddnsip.cn/*.ddnsip.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
}

yán

看着很複雜shì不是,是不是懶得xiě(/手動狗tóu,沒關,這有現成de
UA: https://ua.ddnsip.cn huò https://ddnsip.cn/ua (JSON)
IP: https://ddnsip.cn huò https://ddnsip.cn/json
IPv4: https://ipv4.ddnsip.cn huò https://ddnsip.cn/json
IPv6: https://ipv6.ddnsip.cn huò https://ipv6.ddnsip.cn/json

Linux下使用直接看下面鏈接裏的說míng
https://www.ddnsip.cn

閒的沒事搞了個cháIP歸屬de(不保證穩定和準què):
https://ip.ddnsip.cn/