中国 ASN
https://www.pdflibr.com/countries/cn/1
爬虫:
https://tool.ip138.com/spider/
机房:
https://www.pdflibr.com/ip
https://asn.ipinfo.app/
http://ip.bczs.net/
Nginx按ASN屏蔽IP
#!/bin/bash
origfold=$PWD
baseurl="https://asn.ipinfo.app/api/download/nginx/AS"
# Edit this list before use
asnlist="13335
1234
12345"
if [ "$1" == "--delall" ]; then
for i in $asnlist;
do
echo "" >/www/server/nginx/conf/asnblock$i.conf
done
elif [ "$1" == "-d" ]; then
echo "" >/www/server/nginx/conf/asnblock$2.conf
/usr/bin/nginx -s reload
elif [ "$1" == "-a" ]; then
wget -qO "/www/server/nginx/conf/asnblock$2.conf" "$baseurl$2"
/usr/bin/nginx -s reload
else
rm -rf /www/server/nginx/conf/asnblock*.conf
for i in $asnlist;
do
wget -qO "/www/server/nginx/conf/asnblock$i.conf" "$baseurl$i"
echo "AS$i has been banned!"
done
fi
/usr/bin/nginx -s reload
# return to original folder
cd $origfold
exit 0
用法:复制这个脚本并且加上可执行权限,如果是宝塔面板用户则不需额外操作,只需要修改asnlist里面想要屏蔽的ASN号码即可,一行一个。
执行过后会提示nginx已被软重启。然后去自己的站点配置文件增加include asnblockabcd.conf; 其中abcd是ASN号码的数字部分,例如屏蔽AS 13335则站点配置文件写include asnblock13335.conf;
屏蔽多个则在站点配置文件写多行include即可,然后保存文件再次重启nginx即可。
这种方式可批量屏蔽ASN,但无法自动更新,自动更新需要在crontab里面加一句
crontab -e
然后输入0 3 * /bin/bash /root/nginxasn.sh >/dev/null
也就是每天凌晨3点自动更新asn库。
使用其他面板或者不使用面板的用户只需要把conf指向正确的地址即可。
更新 2023-04-18