├── .github └── workflows │ └── update.yml ├── LICENSE ├── LastFM ├── downloader.sh └── ipv4.acl ├── M247 ├── downloader.sh └── ipv4.acl ├── README.md ├── acer ├── downloader.sh └── ipv4.acl ├── adobe-all ├── downloader.sh └── ipv4.acl ├── akamai ├── downloader.sh └── ipv4.acl ├── alibaba ├── downloader.sh └── ipv4.acl ├── amazon-all ├── README.md ├── downloader.sh └── ipv4.acl ├── amazon ├── downloader.sh └── ipv4.acl ├── amazoncloudfront ├── downloader.sh └── ipv4.acl ├── amd ├── downloader.sh └── ipv4.acl ├── apple-all ├── README.md ├── downloader.sh └── ipv4.acl ├── apple-proxy ├── downloader.sh └── ipv4.acl ├── apple ├── downloader.sh └── ipv4.acl ├── arch ├── downloader.sh └── ipv4.acl ├── atom86 ├── downloader.sh └── ipv4.acl ├── avito ├── downloader.sh └── ipv4.acl ├── azure ├── downloader.sh └── ipv4.acl ├── backblaze ├── downloader.sh └── ipv4.acl ├── beeline-all ├── README.md └── downloader.sh ├── beeline ├── downloader.sh └── ipv4.acl ├── beget ├── downloader.sh └── ipv4.acl ├── bing ├── downloader.sh └── ipv4.acl ├── bluehost ├── downloader.sh └── ipv4.acl ├── canonical-ubuntu ├── downloader.sh └── ipv4.acl ├── chatgpt ├── downloader.sh └── ipv4.acl ├── cloudflare ├── downloader.sh └── ipv4.acl ├── corbina ├── downloader.sh └── ipv4.acl ├── digitalocean ├── downloader.sh └── ipv4.acl ├── discord ├── downloader.sh └── ipv4.acl ├── domru ├── downloader.sh └── ipv4.acl ├── dreamhost ├── downloader.sh └── ipv4.acl ├── edgecast ├── downloader.sh └── ipv4.acl ├── expressvpn ├── downloader.sh └── ipv4.acl ├── facebook ├── downloader.sh └── ipv4.acl ├── fastly ├── downloader.sh └── ipv4.acl ├── github ├── downloader.sh └── ipv4.acl ├── godaddy ├── downloader.sh └── ipv4.acl ├── google-all ├── README.md ├── downloader.sh └── ipv4.acl ├── google ├── downloader.sh └── ipv4.acl ├── googlecloud ├── downloader.sh └── ipv4.acl ├── hetzner ├── downloader.sh └── ipv4.acl ├── hostgator └── ipv4.acl ├── huaweicloud ├── downloader.sh └── ipv4.acl ├── imdb ├── downloader.sh └── ipv4.acl ├── imperva ├── downloader.sh └── ipv4.acl ├── intel ├── downloader.sh └── ipv4.acl ├── ionos ├── downloader.sh └── ipv4.acl ├── kamatera ├── downloader.sh └── ipv4.acl ├── kinopub ├── downloader.sh └── ipv4.acl ├── lifestream ├── README.md ├── downloader.sh └── ipv4.acl ├── linkedin ├── downloader.sh └── ipv4.acl ├── linode ├── downloader.sh └── ipv4.acl ├── microsoft-all ├── README.md ├── downloader.sh └── ipv4.acl ├── microsoft ├── downloader.sh └── ipv4.acl ├── mozilla ├── downloader.sh └── ipv4.acl ├── mts-all ├── README.md ├── downloader.sh └── ipv4.acl ├── mts ├── downloader.sh └── ipv4.acl ├── mtscloud ├── downloader.sh └── ipv4.acl ├── netflix ├── downloader.sh └── ipv4.acl ├── nintendo ├── downloader.sh └── ipv4.acl ├── nordvpn ├── downloader.sh └── ipv4.acl ├── nvidia ├── downloader.sh └── ipv4.acl ├── obit ├── downloader.sh └── ipv4.acl ├── oracle ├── downloader.sh └── ipv4.acl ├── ovh ├── downloader.sh └── ipv4.acl ├── ozonru ├── downloader.sh └── ipv4.acl ├── pakt ├── downloader.sh └── ipv4.acl ├── playstation ├── downloader.sh └── ipv4.acl ├── protonvpn ├── downloader.sh └── ipv4.acl ├── python ├── downloader.sh └── ipv4.acl ├── qrator ├── downloader.sh └── ipv4.acl ├── rambler ├── downloader.sh └── ipv4.acl ├── redhat ├── downloader.sh └── ipv4.acl ├── rezka ├── downloader.sh └── ipv4.acl ├── roblox ├── downloader.sh └── ipv4.acl ├── rostelecom ├── downloader.sh └── ipv4.acl ├── ruby ├── downloader.sh └── ipv4.acl ├── rugov ├── downloader.sh └── ipv4.acl ├── rust ├── downloader.sh └── ipv4.acl ├── spotify ├── downloader.sh └── ipv4.acl ├── steam ├── downloader.sh └── ipv4.acl ├── sublimetext ├── downloader.sh └── ipv4.acl ├── surfshark ├── downloader.sh └── ipv4.acl ├── suse ├── downloader.sh └── ipv4.acl ├── telegram ├── downloader.sh └── ipv4.acl ├── tencent ├── downloader.sh └── ipv4.acl ├── tiktok ├── downloader.sh └── ipv4.acl ├── tor ├── downloader.sh └── ipv4.acl ├── twitter ├── downloader.sh └── ipv4.acl ├── ufanet ├── downloader.sh └── ipv4.acl ├── valve └── ipv4.acl ├── vkontakte ├── downloader.sh └── ipv4.acl ├── vpnhosts ├── downloader.sh └── ipv4.acl ├── yandex-all ├── README.md ├── downloader.sh └── ipv4.acl ├── yandex ├── downloader.sh └── ipv4.acl ├── yandexcloud ├── downloader.sh └── ipv4.acl ├── youtube ├── downloader.sh └── ipv4.acl └── zenlayer ├── downloader.sh └── ipv4.acl /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | name: "Update" 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '30 20 * * *' 7 | 8 | jobs: 9 | updater: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v4 13 | 14 | - name: Settings DoT DNS with systemd-resolved 15 | run: | 16 | sudo apt update 17 | sudo apt install -y bind9-dnsutils sudo --no-install-suggests 18 | sudo mkdir -pv /etc/systemd/resolved.conf.d/ 19 | echo -e "[Resolve]\nDNS=8.8.4.4#dns.google\nFallbackDNS=\nDNSOverTLS=yes\nDNSSEC=yes\nCache=yes\nCacheFromLocalhost=yes\nReadEtcHosts=no" | sudo tee /etc/systemd/resolved.conf.d/google.conf &>/dev/null; 20 | echo -e "[Resolve]\nDNS=1.0.0.1#1dot1dot1dot1.cloudflare-dns.com\nFallbackDNS=\nDNSOverTLS=yes\nDNSSEC=yes\nCache=yes\nCacheFromLocalhost=yes\nReadEtcHosts=no" | sudo tee /etc/systemd/resolved.conf.d/cloudflare.conf &>/dev/null; 21 | cat /etc/systemd/resolved.conf.d/google.conf 22 | echo "" 23 | cat /etc/systemd/resolved.conf.d/cloudflare.conf 24 | echo "" 25 | echo "nameserver 127.0.0.53" | sudo tee /etc/resolv.conf.DNSoverride &>/dev/null; 26 | sudo ln -svf /etc/resolv.conf.DNSoverride /etc/resolv.conf 27 | cat -n /etc/resolv.conf 28 | echo "" 29 | cat -n /etc/hosts 30 | echo "" 31 | sudo systemctl restart systemd-resolved.service 32 | sleep 3s 33 | nc -z -v 127.0.0.53 53 && echo "" 34 | 35 | - name: Test DNS-query 36 | run: | 37 | nslookup -type=A google.com 38 | echo "" 39 | dig google.com A 40 | 41 | - name: Prepare packages 42 | run: sudo apt install -y dos2unix curl gawk language-pack-ru language-pack-en locales moreutils coreutils util-linux bash git && sudo sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && sudo locale-gen --no-purge en_US.UTF-8 43 | 44 | - name: Download CIDR list 45 | env: 46 | LANG: en_US.UTF-8 47 | CHARSET: UTF-8 48 | NAME_ACCOUNT_GITHUB: you-oops-dev 49 | run: | 50 | set -euo pipefail 51 | set -x 52 | find . -name downloader.sh| sort -h | awk '{print "Executing "$1"...";system("bash "$1)}' 53 | 54 | - name: Protection against empty files (shadowsocks acl file). If one such file is found, no changes will be committed to the repository. Finishing with code 1. Error code for the repository author. 55 | env: 56 | LANG: en_US.UTF-8 57 | CHARSET: UTF-8 58 | run: | 59 | for filename in $(find . -type f -name "ipv4.acl" -print | sort -t . | uniq); do if [[ -s ${filename} ]]; then echo "No empty $filename";else echo -e "\e[1;33mEmpty\033[0m $filename" && export EMPTY=1; fi; done 60 | if [[ $EMPTY == 1 ]]; then exit 1; else echo "OK!"; fi 61 | 62 | - name: Commit files 63 | uses: stefanzweifel/git-auto-commit-action@v5 64 | with: 65 | commit_message: "Auto-update ip ranges in ACL format for shadowsocks" 66 | file_pattern: '*/*.acl' 67 | commit_options: "--no-verify" 68 | repository: . 69 | commit_user_name: github-actions[bot] 70 | commit_user_email: github-actions[bot]@users.noreply.github.com 71 | commit_author: github-actions[bot] 72 | -------------------------------------------------------------------------------- /LastFM/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/refs/heads/master/rule/Shadowrocket/LastFM/LastFM.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/refs/heads/master/data/lastfm | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt | sed '/.tk/d'); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'LastFM' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/LastFM.txt | sed 's/\/32//g' > /tmp/LastFM-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/LastFM.txt > /tmp/LastFM-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee LastFM/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee LastFM/ipv6.acl 46 | 47 | add_domain 'LastFM' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/LastFM-ipv4.txt | uniq >> LastFM/ipv4.acl 51 | #sort -h /tmp/LastFM-ipv6.txt | uniq >> LastFM/ipv6.acl 52 | -------------------------------------------------------------------------------- /LastFM/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)audioscrobbler\.com$ 4 | (?:^|\.)fuckyeahtfx\.com$ 5 | (?:^|\.)last\.fm$ 6 | (?:^|\.)lastfm\.cn$ 7 | (?:^|\.)lastfm\.de$ 8 | (?:^|\.)lastfm\.es$ 9 | (?:^|\.)lastfm\.eu$ 10 | (?:^|\.)lastfm\.freetls\.fastly\.net$ 11 | (?:^|\.)lastfm-img2\.akamaized\.net$ 12 | (?:^|\.)lastfm\.ph$ 13 | (?:^|\.)lastfm\.pl$ 14 | (?:^|\.)lastfmpresents\.com$ 15 | (?:^|\.)lastfm\.ru$ 16 | (?:^|\.)last\.us11\.list-manage\.com$ 17 | (?:^|\.)oilofhaemony\.com$ 18 | (?:^|\.)ouchmonkey\.com$ 19 | -------------------------------------------------------------------------------- /M247/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'M247' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/M247.txt | sed 's/\/32//g' > /tmp/M247-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/M247.txt > /tmp/M247-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee M247/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee M247/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/M247-ipv4.txt | uniq >> M247/ipv4.acl 30 | #sort -h /tmp/M247-ipv6.txt | uniq >> M247/ipv6.acl 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IPRanges for Shadowsocks 2 | 3 | List all IP ranges (or to a lesser extent just the domain) from: Google, Bing, Amazon, Microsoft, Azure, Oracle, DigitalOcean, GitHub, Facebook, Twitter, Linode, Yandex, Vkontakte, Telegram, Netflix, Steam, Spotify, ChatGPT, YouTube with regular auto-updates for Shadowsocks in ACL format. 4 | 5 | All lists are obtained from public sources. 6 | 7 | ## List types 8 | 9 | `ipv4.acl`/`ipv6.acl` – list of addresses smallest possible list of CIDRs. 10 | 11 | `ipv6.acl` – Temporarily unsupported. 12 | 13 | ## See also repository: 14 | 15 | https://github.com/you-oops-dev/ipranges 16 | 17 | -------------------------------------------------------------------------------- /acer/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Acer/Acer.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/acer | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'acer' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/acer.txt | sed 's/\/32//g' > /tmp/acer-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/acer.txt > /tmp/acer-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee acer/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee acer/ipv6.acl 46 | 47 | add_domain 'acer' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/acer-ipv4.txt | uniq >> acer/ipv4.acl 51 | #sort -h /tmp/acer-ipv6.txt | uniq >> acer/ipv6.acl 52 | -------------------------------------------------------------------------------- /acer/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)acer\.com$ 4 | (?:^|\.)acer\.com\.cn$ 5 | (?:^|\.)acer-group\.com$ 6 | (?:^|\.)founderpc\.cn$ 7 | (?:^|\.)founderpc\.com$ 8 | -------------------------------------------------------------------------------- /akamai/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'akamai' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/akamai.txt | sed 's/\/32//g' > /tmp/akamai-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/akamai.txt > /tmp/akamai-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee akamai/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee akamai/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/akamai-ipv4.txt | uniq >> akamai/ipv4.acl 30 | #sort -h /tmp/akamai-ipv6.txt | uniq >> akamai/ipv6.acl 31 | -------------------------------------------------------------------------------- /alibaba/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'alibaba' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/alibaba.txt | sed 's/\/32//g' > /tmp/alibaba-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/alibaba.txt > /tmp/alibaba-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee alibaba/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee alibaba/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/alibaba-ipv4.txt | uniq >> alibaba/ipv4.acl 30 | #sort -h /tmp/alibaba-ipv6.txt | uniq >> alibaba/ipv6.acl 31 | -------------------------------------------------------------------------------- /alibaba/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 42.120.128.0/17 4 | 42.120.64.0/18 5 | 42.156.128.0/17 6 | 47.235.0.0/16 7 | 47.236.0.0/14 8 | 47.240.0.0/14 9 | 47.244.0.0/15 10 | 47.246.0.0/16 11 | 47.250.0.0/15 12 | 47.252.0.0/15 13 | 47.254.0.0/16 14 | 47.52.0.0/16 15 | 47.56.0.0/15 16 | 47.74.0.0/15 17 | 47.76.0.0/14 18 | 47.80.0.0/13 19 | 47.88.0.0/14 20 | 72.254.0.0/16 21 | 103.212.44.0/22 22 | 106.11.0.0/16 23 | 110.173.192.0/19 24 | 110.75.0.0/17 25 | 115.124.16.0/20 26 | 116.251.64.0/18 27 | 139.5.160.0/22 28 | 139.95.0.0/16 29 | 140.205.0.0/16 30 | 147.139.0.0/16 31 | 155.102.0.0/16 32 | 163.181.0.0/16 33 | 198.11.128.0/18 34 | 205.204.96.0/19 35 | -------------------------------------------------------------------------------- /amazon-all/README.md: -------------------------------------------------------------------------------- 1 | Amazon+Amazon Cloudfront prefix -------------------------------------------------------------------------------- /amazon-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_smart.txt > /tmp/"$1".txt 11 | #curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'amazon-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/amazon-all.txt | sed 's/\/32//g' > /tmp/amazon-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/amazon-all.txt > /tmp/amazon-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee amazon-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee roblox/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/amazon-all-ipv4.txt | uniq >> amazon-all/ipv4.acl 30 | #sort -h /tmp/amazon-all-ipv6.txt | uniq >> amazon-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /amazon/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'amazon' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/amazon.txt | sed 's/\/32//g' > /tmp/amazon-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/amazon.txt > /tmp/amazon-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee amazon/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee amazon/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/amazon-ipv4.txt | uniq >> amazon/ipv4.acl 30 | #sort -h /tmp/amazon-ipv6.txt | uniq >> amazon/ipv6.acl 31 | -------------------------------------------------------------------------------- /amazoncloudfront/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'amazoncloudfront' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/amazoncloudfront.txt | sed 's/\/32//g' > /tmp/amazoncloudfront-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/amazoncloudfront.txt > /tmp/amazoncloudfront-ipv6.txt 21 | 22 | # Create/Prepare ACL List for amazoncloudfront IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee amazoncloudfront/ipv4.acl 24 | 25 | # Create/Prepare ACL List for amazoncloudfront IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee amazoncloudfront/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/amazoncloudfront-ipv4.txt | uniq >> amazoncloudfront/ipv4.acl 30 | #sort -h /tmp/amazoncloudfront-ipv6.txt | uniq >> amazoncloudfront/ipv6.acl 31 | -------------------------------------------------------------------------------- /amazoncloudfront/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 3.10.17.128/25 4 | 3.101.158.0/23 5 | 3.107.43.128/25 6 | 3.107.44.0/24 7 | 3.11.53.0/24 8 | 3.128.93.0/24 9 | 3.134.215.0/24 10 | 3.146.232.0/22 11 | 3.147.164.0/22 12 | 3.147.244.0/22 13 | 3.160.0.0/13 14 | 3.168.0.0/14 15 | 3.172.0.0/17 16 | 3.173.0.0/16 17 | 3.174.0.0/15 18 | 3.231.2.0/25 19 | 3.234.232.224/27 20 | 3.236.169.192/26 21 | 3.236.48.0/23 22 | 3.29.40.128/25 23 | 3.29.40.64/26 24 | 3.29.57.0/26 25 | 3.35.130.128/25 26 | 13.113.196.64/26 27 | 13.113.203.0/24 28 | 13.124.199.0/24 29 | 13.134.24.0/23 30 | 13.134.94.0/23 31 | 13.203.133.0/26 32 | 13.210.67.128/26 33 | 13.224.0.0/14 34 | 13.228.69.0/24 35 | 13.233.177.192/26 36 | 13.249.0.0/16 37 | 13.32.0.0/15 38 | 13.35.0.0/16 39 | 13.54.63.128/26 40 | 13.59.250.0/26 41 | 15.158.0.0/16 42 | 15.188.184.0/24 43 | 15.207.13.128/25 44 | 15.207.213.128/25 45 | 18.154.0.0/15 46 | 18.160.0.0/15 47 | 18.164.0.0/15 48 | 18.172.0.0/15 49 | 18.175.65.0/24 50 | 18.175.66.0/23 51 | 18.192.142.0/23 52 | 18.199.68.0/22 53 | 18.199.72.0/21 54 | 18.200.212.0/23 55 | 18.216.170.128/25 56 | 18.229.220.192/26 57 | 18.230.229.0/24 58 | 18.230.230.0/25 59 | 18.238.0.0/15 60 | 18.244.0.0/15 61 | 18.64.0.0/14 62 | 18.68.0.0/16 63 | 34.195.252.0/24 64 | 34.216.51.0/25 65 | 34.223.12.224/27 66 | 34.223.80.192/26 67 | 34.226.14.0/24 68 | 35.158.136.0/24 69 | 35.162.63.192/26 70 | 35.167.191.128/26 71 | 35.93.168.0/22 72 | 35.93.172.0/23 73 | 36.103.232.0/25 74 | 36.103.232.128/26 75 | 43.218.56.128/25 76 | 43.218.56.64/26 77 | 43.218.71.0/26 78 | 44.220.194.0/23 79 | 44.220.196.0/22 80 | 44.220.200.0/22 81 | 44.222.66.0/24 82 | 44.227.178.0/24 83 | 44.234.108.128/25 84 | 44.234.90.252/30 85 | 47.129.82.0/23 86 | 47.129.84.0/24 87 | 51.44.234.0/23 88 | 51.44.236.0/22 89 | 52.124.128.0/17 90 | 52.15.127.128/26 91 | 52.199.127.192/26 92 | 52.212.248.0/26 93 | 52.220.191.0/26 94 | 52.222.128.0/17 95 | 52.46.0.0/18 96 | 52.47.139.0/24 97 | 52.52.191.128/26 98 | 52.56.127.0/25 99 | 52.57.254.0/24 100 | 52.66.194.128/26 101 | 52.78.247.128/26 102 | 52.82.128.0/19 103 | 52.84.0.0/15 104 | 54.182.0.0/16 105 | 54.192.0.0/16 106 | 54.230.0.0/17 107 | 54.230.128.0/18 108 | 54.230.200.0/21 109 | 54.230.208.0/20 110 | 54.230.224.0/19 111 | 54.233.255.128/26 112 | 54.239.128.0/18 113 | 54.239.192.0/19 114 | 54.240.128.0/18 115 | 56.125.46.0/24 116 | 56.125.47.0 117 | 56.125.48.0/24 118 | 57.182.253.0/24 119 | 57.183.42.0/25 120 | 58.254.138.0/25 121 | 58.254.138.128/26 122 | 64.252.128.0/18 123 | 64.252.64.0/18 124 | 65.8.0.0/16 125 | 65.9.0.0/17 126 | 65.9.128.0/18 127 | 70.132.0.0/18 128 | 71.152.0.0/17 129 | 99.79.169.0/24 130 | 99.84.0.0/16 131 | 99.86.0.0/16 132 | 108.138.0.0/15 133 | 108.156.0.0/14 134 | 111.13.171.128/25 135 | 111.13.185.32/27 136 | 111.13.185.64/27 137 | 116.129.226.0/25 138 | 116.129.226.128/26 139 | 118.193.97.128/25 140 | 118.193.97.64/26 141 | 119.147.182.0/25 142 | 119.147.182.128/26 143 | 120.232.236.0/25 144 | 120.232.236.128/26 145 | 120.253.240.192/26 146 | 120.253.241.160/27 147 | 120.253.245.128/26 148 | 120.253.245.192/27 149 | 120.52.12.64/26 150 | 120.52.153.192/26 151 | 120.52.22.96/27 152 | 120.52.39.128/27 153 | 130.176.0.0/17 154 | 130.176.128.0/18 155 | 130.176.192.0/19 156 | 130.176.224.0/20 157 | 143.204.0.0/16 158 | 144.220.0.0/16 159 | 180.163.57.0/25 160 | 180.163.57.128/26 161 | 204.246.164.0/22 162 | 204.246.168.0/21 163 | 204.246.176.0/20 164 | 205.251.202.0/23 165 | 205.251.204.0/22 166 | 205.251.208.0/20 167 | 205.251.249.0/24 168 | 205.251.250.0/23 169 | 205.251.252.0/23 170 | 205.251.254.0/24 171 | 216.137.32.0/19 172 | -------------------------------------------------------------------------------- /amd/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/AMD/AMD.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/amd | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'amd' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/amd.txt | sed 's/\/32//g' > /tmp/amd-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/amd.txt > /tmp/amd-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee amd/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee amd/ipv6.acl 46 | 47 | add_domain 'amd' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/amd-ipv4.txt | uniq >> amd/ipv4.acl 51 | #sort -h /tmp/amd-ipv6.txt | uniq >> amd/ipv6.acl 52 | -------------------------------------------------------------------------------- /amd/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)amd\.com$ 4 | (?:^|\.)amd\.com\.cn$ 5 | (?:^|\.)amdfanstore\.com$ 6 | (?:^|\.)radeon\.com$ 7 | -------------------------------------------------------------------------------- /apple-all/README.md: -------------------------------------------------------------------------------- 1 | Apple+Apple-proxy -------------------------------------------------------------------------------- /apple-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_smart.txt > /tmp/"$1".txt 11 | #curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'apple-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/apple-all.txt | sed 's/\/32//g' > /tmp/apple-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/apple-all.txt > /tmp/apple-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee apple-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee apple-all/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/apple-all-ipv4.txt | uniq >> apple-all/ipv4.acl 30 | #sort -h /tmp/apple-all-ipv6.txt | uniq >> apple-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /apple-proxy/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'apple-proxy' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/apple-proxy.txt | sed 's/\/32//g' > /tmp/apple-proxy-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/apple-proxy.txt > /tmp/apple-proxy-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee apple-proxy/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee apple-proxy/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/apple-proxy-ipv4.txt | uniq >> apple-proxy/ipv4.acl 30 | #sort -h /tmp/apple-proxy-ipv6.txt | uniq >> apple-proxy/ipv6.acl 31 | -------------------------------------------------------------------------------- /apple/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'apple' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/apple.txt | sed 's/\/32//g' > /tmp/apple-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/apple.txt > /tmp/apple-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee apple/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee apple/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/apple-ipv4.txt | uniq >> apple/ipv4.acl 30 | #sort -h /tmp/apple-ipv6.txt | uniq >> apple/ipv6.acl 31 | -------------------------------------------------------------------------------- /apple/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 17.0.0.0/8 4 | 57.102.0.0/15 5 | 57.112.0.0/12 6 | 57.178.0.0/15 7 | 139.178.128.0/17 8 | 144.178.0.0/18 9 | 192.12.74.0/24 10 | 192.42.249.0/24 11 | 204.79.190.0/24 12 | -------------------------------------------------------------------------------- /arch/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/arch/domains.txt > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Delete subdomain in file 14 | cat /tmp/"$1"_domain.txt | grep -vEe '(.archlinux.org)$' > /tmp/"$1"_domain_prepare.txt 15 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 16 | # Replace . on \. 17 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 18 | # ipv4 19 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 20 | # ipv6 21 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 22 | } 23 | 24 | # get CIDR from list 25 | get_prefix() { 26 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 27 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 28 | } 29 | 30 | get_prefix 'arch' || echo 'failed' 31 | 32 | # save ipv4 33 | grep -v ':' /tmp/arch.txt | sed 's/\/32//g' > /tmp/arch-ipv4.txt 34 | 35 | # save ipv6 36 | #grep ':' /tmp/arch.txt > /tmp/arch-ipv6.txt 37 | 38 | # Create/Prepare ACL List for Shadowsocks IPv4 39 | echo -e "[bypass_all]\n[proxy_list]" | tee arch/ipv4.acl 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv6 42 | #echo -e "[bypass_all]\n[proxy_list]" | tee arch/ipv6.acl 43 | 44 | add_domain 'arch' || echo 'failed' 45 | 46 | # sort & uniq 47 | sort -h /tmp/arch-ipv4.txt | uniq >> arch/ipv4.acl 48 | #sort -h /tmp/arch-ipv6.txt | uniq >> arch/ipv6.acl 49 | -------------------------------------------------------------------------------- /arch/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)archlinux\.org$ 4 | 49.12.124.107 5 | 95.216.144.15 6 | 95.216.189.5 7 | 95.216.189.61 8 | 95.216.195.133 9 | 95.217.160.183 10 | 95.217.163.246 11 | 95.217.216.117 12 | 95.217.220.31 13 | 95.217.236.249 14 | 95.217.239.55 15 | 116.203.16.252 16 | 116.203.198.193 17 | 116.203.93.142 18 | 128.140.48.117 19 | 135.181.156.202 20 | 135.181.27.174 21 | 157.90.255.107 22 | 159.69.111.245 23 | 168.119.141.106 24 | 168.119.240.111 25 | 213.133.111.15 26 | 213.133.111.6 27 | -------------------------------------------------------------------------------- /atom86/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'atom86' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/atom86.txt | sed 's/\/32//g' > /tmp/atom86-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/atom86.txt > /tmp/atom86-ipv6.txt 21 | 22 | # Create/Prepare ACL List for atom86 IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee atom86/ipv4.acl 24 | 25 | # Create/Prepare ACL List for atom86 IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee atom86/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/atom86-ipv4.txt | uniq >> atom86/ipv4.acl 30 | #sort -h /tmp/atom86-ipv6.txt | uniq >> atom86/ipv6.acl 31 | -------------------------------------------------------------------------------- /atom86/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 31.14.45.0/24 4 | 31.22.80.0/21 5 | 45.148.184.0/22 6 | 45.154.124.0/22 7 | 45.82.104.0/23 8 | 85.222.236.0/22 9 | 89.255.200.0/21 10 | 91.208.49.0/24 11 | 95.142.96.0/20 12 | 109.71.48.0/22 13 | 109.71.52.0/23 14 | 130.193.4.0/24 15 | 178.237.32.0/20 16 | 185.121.92.0/22 17 | 185.158.164.0/22 18 | 185.165.208.0/24 19 | 185.194.0.0/22 20 | 185.223.84.0/22 21 | 185.234.96.0/22 22 | 185.242.220.0/22 23 | 185.27.16.0/22 24 | 185.31.144.0/22 25 | 193.202.74.0/23 26 | 193.202.88.0/24 27 | 195.137.242.0/24 28 | 195.248.87.0/24 29 | 195.43.158.0/24 30 | 195.95.246.0/24 31 | 217.194.18.0/24 32 | 217.194.21.0/24 33 | -------------------------------------------------------------------------------- /avito/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'avito' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/avito.txt | sed 's/\/32//g' > /tmp/avito-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/avito.txt > /tmp/avito-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee avito/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee avito/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/avito-ipv4.txt | uniq >> avito/ipv4.acl 30 | #sort -h /tmp/avito-ipv6.txt | uniq >> avito/ipv6.acl 31 | -------------------------------------------------------------------------------- /avito/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 176.109.112.0/20 4 | 176.114.112.0/20 5 | 185.89.12.0/22 6 | -------------------------------------------------------------------------------- /azure/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'azure' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/azure.txt | sed 's/\/32//g' > /tmp/azure-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/azure.txt > /tmp/azure-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee azure/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee azure/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/azure-ipv4.txt | uniq >> azure/ipv4.acl 30 | #sort -h /tmp/azure-ipv6.txt | uniq >> azure/ipv6.acl 31 | -------------------------------------------------------------------------------- /backblaze/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'backblaze' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/backblaze.txt | sed 's/\/32//g' > /tmp/backblaze-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/backblaze.txt > /tmp/backblaze-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee backblaze/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee backblaze/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/backblaze-ipv4.txt | uniq >> backblaze/ipv4.acl 30 | #sort -h /tmp/backblaze-ipv6.txt | uniq >> backblaze/ipv6.acl 31 | -------------------------------------------------------------------------------- /backblaze/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 23.144.80.0/24 4 | 45.11.36.0/22 5 | 104.153.232.0/21 6 | 149.137.128.0/20 7 | 206.190.208.0/21 8 | 207.166.148.0/22 9 | -------------------------------------------------------------------------------- /beeline-all/README.md: -------------------------------------------------------------------------------- 1 | Beeline+Corbina prefix -------------------------------------------------------------------------------- /beeline-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_smart.txt > /tmp/"$1".txt 11 | #curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'beeine-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/beeine-all.txt | sed 's/\/32//g' > /tmp/beeine-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/beeine-all.txt > /tmp/beeine-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee beeine-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee beeine-all/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/beeine-all-ipv4.txt | uniq >> beeine-all/ipv4.acl 30 | #sort -h /tmp/beeine-all-ipv6.txt | uniq >> beeine-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /beeline/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'beeline' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/beeline.txt | sed 's/\/32//g' > /tmp/beeline-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/beeline.txt > /tmp/beeline-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee beeline/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee beeline/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/beeline-ipv4.txt | uniq >> beeline/ipv4.acl 30 | #sort -h /tmp/beeline-ipv6.txt | uniq >> beeline/ipv6.acl 31 | -------------------------------------------------------------------------------- /beeline/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 31.13.144.0/21 4 | 37.9.240.0/21 5 | 46.16.96.0/21 6 | 46.250.52.0/22 7 | 46.42.144.0/21 8 | 77.41.180.0/23 9 | 77.41.182.0/24 10 | 77.41.186.0/23 11 | 81.9.12.0/22 12 | 83.220.224.0/19 13 | 85.115.234.0/23 14 | 85.115.236.0/22 15 | 85.115.240.0/21 16 | 85.115.248.0/23 17 | 85.115.252.0/22 18 | 89.113.0.0/20 19 | 91.193.176.0/22 20 | 109.197.200.0/21 21 | 194.186.207.0/24 22 | 194.186.221.0/24 23 | 194.186.59.0/24 24 | 194.186.78.0/24 25 | 212.119.238.0/23 26 | 217.118.64.0/20 27 | 217.118.80.0/21 28 | 217.118.88.0/22 29 | 217.118.92.0/23 30 | 217.118.95.0/24 31 | -------------------------------------------------------------------------------- /beget/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'beget' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/beget.txt | sed 's/\/32//g' > /tmp/beget-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/beget.txt > /tmp/beget-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee beget/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee beget/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/beget-ipv4.txt | uniq >> beget/ipv4.acl 30 | #sort -h /tmp/beget-ipv6.txt | uniq >> beget/ipv6.acl 31 | -------------------------------------------------------------------------------- /beget/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.101.152.0/21 4 | 5.181.108.0/22 5 | 5.35.80.0/20 6 | 31.128.32.0/20 7 | 31.129.96.0/20 8 | 31.207.74.0/23 9 | 31.207.76.0/23 10 | 45.12.16.0/22 11 | 45.12.236.0/22 12 | 45.12.72.0/22 13 | 45.130.40.0/22 14 | 45.141.76.0/22 15 | 45.146.164.0/22 16 | 45.147.176.0/22 17 | 45.153.188.0/22 18 | 45.67.56.0/22 19 | 45.80.68.0/22 20 | 45.84.224.0/22 21 | 45.90.32.0/22 22 | 45.9.40.0/22 23 | 46.173.16.0/22 24 | 46.173.24.0/22 25 | 46.173.28.0/23 26 | 62.113.96.0/20 27 | 62.217.176.0/21 28 | 81.200.112.0/21 29 | 82.202.128.0/22 30 | 83.222.16.0/22 31 | 83.222.24.0/22 32 | 87.236.16.0/21 33 | 89.169.38.0/23 34 | 90.156.168.0/22 35 | 91.106.200.0/21 36 | 93.189.228.0/22 37 | 95.214.60.0/22 38 | 109.172.36.0/22 39 | 185.155.118.0/24 40 | 185.19.204.0/22 41 | 185.207.0.0/23 42 | 185.225.32.0/22 43 | 185.50.24.0/22 44 | 185.78.28.0/22 45 | 193.168.46.0/23 46 | 193.168.48.0/23 47 | 193.176.76.0/22 48 | 193.200.72.0/22 49 | 212.67.8.0/21 50 | 213.139.208.0/22 51 | 217.114.0.0/20 52 | 217.12.37.0/24 53 | 217.12.38.0/24 54 | 217.12.40.0/24 55 | 217.172.24.0/22 56 | -------------------------------------------------------------------------------- /bing/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'bing' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/bing.txt | sed 's/\/32//g' > /tmp/bing-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/bing.txt > /tmp/bing-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee bing/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee bing/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/bing-ipv4.txt | uniq >> bing/ipv4.acl 30 | #sort -h /tmp/bing-ipv6.txt | uniq >> bing/ipv6.acl 31 | -------------------------------------------------------------------------------- /bing/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 2.16.153.206 4 | 2.16.153.224 5 | 2.19.195.10 6 | 2.19.195.123 7 | 2.19.195.43 8 | 2.19.195.96 9 | 2.22.244.227 10 | 2.22.31.104 11 | 2.22.31.152 12 | 2.22.31.154/31 13 | 4.207.164.15 14 | 13.107.21.237 15 | 13.107.246.40 16 | 13.107.246.45 17 | 13.107.246.51 18 | 13.107.246.53 19 | 13.107.246.58 20 | 13.107.246.64/31 21 | 13.107.246.67 22 | 13.107.246.69 23 | 13.107.253.45 24 | 13.107.5.80 25 | 13.107.5.86 26 | 13.107.6.158 27 | 13.107.9.158 28 | 13.66.139.0/24 29 | 13.66.144.0/24 30 | 13.67.10.16/28 31 | 13.69.66.240/28 32 | 13.71.172.224/28 33 | 13.91.127.49 34 | 20.112.250.133 35 | 20.125.163.80/28 36 | 20.15.133.160/27 37 | 20.231.239.246 38 | 20.236.44.162 39 | 20.247.205.177 40 | 20.36.108.32/28 41 | 20.43.120.16/28 42 | 20.70.246.20 43 | 20.74.197.0/28 44 | 20.76.201.171 45 | 20.79.107.240/28 46 | 23.11.215.147 47 | 23.11.215.217 48 | 23.213.203.19 49 | 23.213.203.35 50 | 23.213.203.91 51 | 23.213.53.12 52 | 23.213.53.16/30 53 | 23.213.53.20 54 | 23.213.53.22 55 | 23.213.53.24/29 56 | 23.213.53.34/31 57 | 23.213.53.36/30 58 | 23.213.53.40/31 59 | 23.213.53.4/30 60 | 23.213.53.8/30 61 | 23.216.134.137 62 | 23.216.134.149 63 | 23.216.134.152 64 | 23.216.134.155 65 | 23.218.92.115 66 | 23.218.92.90 67 | 23.218.92.97 68 | 23.3.91.156 69 | 23.3.91.165 70 | 23.44.201.16/29 71 | 23.44.201.24/30 72 | 23.44.201.28 73 | 23.44.201.30/31 74 | 23.44.201.32/29 75 | 23.44.201.40/30 76 | 23.44.201.4/30 77 | 23.44.201.8/29 78 | 23.64.12.10 79 | 23.64.12.16 80 | 23.64.12.18/31 81 | 23.64.12.24/30 82 | 23.64.12.34/31 83 | 23.64.12.40 84 | 40.112.143.134 85 | 40.77.139.0/25 86 | 40.77.167.0/24 87 | 40.77.177.0/24 88 | 40.77.178.0/23 89 | 40.77.188.0/22 90 | 40.77.202.0/24 91 | 40.79.131.208/28 92 | 40.79.186.176/28 93 | 51.105.67.0/28 94 | 52.167.144.0/24 95 | 52.231.148.0/28 96 | 52.240.139.224 97 | 62.115.252.10 98 | 62.115.252.16/31 99 | 62.115.252.25 100 | 62.115.252.27 101 | 62.115.252.32/30 102 | 62.115.252.40/30 103 | 62.115.252.48/31 104 | 62.115.252.51 105 | 62.115.252.56/30 106 | 62.115.252.64/31 107 | 62.115.252.66 108 | 62.115.252.72/31 109 | 62.115.252.74 110 | 62.115.252.8/31 111 | 65.55.210.0/24 112 | 80.239.137.136/30 113 | 80.239.137.144/31 114 | 80.239.137.147 115 | 80.239.137.152/30 116 | 80.239.137.160/31 117 | 80.239.137.162 118 | 80.239.137.168/30 119 | 92.123.128.133 120 | 92.123.128.134 121 | 92.123.128.149 122 | 92.123.128.161 123 | 92.123.128.164/31 124 | 92.123.128.167 125 | 92.123.128.169 126 | 92.123.128.170/31 127 | 92.123.128.175 128 | 92.123.128.177 129 | 92.123.128.178 130 | 92.123.128.180/31 131 | 92.123.128.187 132 | 92.123.128.192 133 | 92.123.128.194 134 | 104.40.180.159 135 | 139.217.52.0/28 136 | 150.171.27.10 137 | 150.171.28.10 138 | 157.55.39.0/24 139 | 172.175.20.172 140 | 172.183.211.246 141 | 184.51.252.29 142 | 184.51.252.31 143 | 184.51.252.32/31 144 | 184.51.252.34 145 | 184.51.252.42 146 | 184.51.252.49 147 | 184.51.252.6 148 | 184.51.252.63 149 | 186.2.163.219 150 | 191.233.204.224/28 151 | 199.30.24.0/23 152 | 204.79.197.200 153 | 204.79.197.237 154 | 207.46.13.0/24 155 | -------------------------------------------------------------------------------- /bluehost/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'bluehost' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/bluehost.txt | sed 's/\/32//g' > /tmp/bluehost-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/bluehost.txt > /tmp/bluehost-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee bluehost/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee bluehost/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/bluehost-ipv4.txt | uniq >> bluehost/ipv4.acl 30 | #sort -h /tmp/bluehost-ipv6.txt | uniq >> bluehost/ipv6.acl 31 | -------------------------------------------------------------------------------- /bluehost/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.100.152.0/21 4 | 23.91.112.0/20 5 | 23.91.64.0/20 6 | 45.113.120.0/22 7 | 50.116.64.0/18 8 | 50.118.0.0/17 9 | 50.6.0.0/16 10 | 50.87.0.0/16 11 | 63.149.124.0/24 12 | 64.17.128.0/18 13 | 64.69.218.0/24 14 | 65.254.64.0/19 15 | 66.147.240.0/20 16 | 67.20.64.0/18 17 | 67.222.32.0/19 18 | 69.195.64.0/18 19 | 69.49.224.0/19 20 | 69.6.192.0/18 21 | 69.89.16.0/20 22 | 70.40.192.0/19 23 | 72.22.92.0/23 24 | 74.119.238.0/23 25 | 74.220.192.0/19 26 | 74.91.128.0/17 27 | 96.125.160.0/20 28 | 100.42.48.0/20 29 | 103.195.186.0/23 30 | 103.224.22.0/23 31 | 104.152.64.0/21 32 | 104.171.0.0/20 33 | 104.254.98.0/23 34 | 108.167.128.0/18 35 | 108.175.144.0/20 36 | 108.179.192.0/18 37 | 116.206.106.0/23 38 | 129.121.0.0/16 39 | 137.59.148.0/22 40 | 142.4.0.0/19 41 | 143.95.0.0/16 42 | 162.144.0.0/16 43 | 162.210.70.0/23 44 | 162.214.0.0/15 45 | 162.222.225.0/24 46 | 162.222.226.0/23 47 | 162.240.0.0/15 48 | 162.251.226.0/24 49 | 162.251.80.0/21 50 | 162.253.144.0/21 51 | 162.254.160.0/21 52 | 166.63.0.0/17 53 | 173.254.0.0/17 54 | 185.195.12.0/22 55 | 192.163.192.0/18 56 | 192.169.48.0/20 57 | 192.185.0.0/16 58 | 192.232.192.0/18 59 | 192.254.128.0/17 60 | 198.1.64.0/18 61 | 198.154.192.0/18 62 | 198.20.224.0/19 63 | 198.252.64.0/20 64 | 198.57.128.0/17 65 | 198.58.80.0/20 66 | 199.79.62.0/23 67 | 204.11.58.0/23 68 | 204.9.176.0/22 69 | 205.207.104.0/22 70 | 207.174.212.0/22 71 | 208.75.120.0/22 72 | 208.91.198.0/23 73 | 209.99.16.0/23 74 | 216.172.160.0/19 75 | -------------------------------------------------------------------------------- /canonical-ubuntu/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'canonical-ubuntu' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/canonical-ubuntu.txt | sed 's/\/32//g' > /tmp/canonical-ubuntu-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/canonical-ubuntu.txt > /tmp/canonical-ubuntu-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee canonical-ubuntu/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee canonical-ubuntu/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/canonical-ubuntu-ipv4.txt | uniq >> canonical-ubuntu/ipv4.acl 30 | #sort -h /tmp/canonical-ubuntu-ipv6.txt | uniq >> canonical-ubuntu/ipv6.acl 31 | -------------------------------------------------------------------------------- /canonical-ubuntu/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 91.189.88.0/21 4 | 162.213.32.0/22 5 | 185.125.188.0/22 6 | 194.169.254.0/24 7 | -------------------------------------------------------------------------------- /chatgpt/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/antonme/ipnames/master/dns-openai.txt > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/antonme/ipnames/master/ext-dns-openai.txt >> /tmp/"$1"_domain.txt 11 | echo 'ab.chatgpt.com 12 | api.openai.com 13 | arena.openai.com 14 | auth.openai.com 15 | auth0.openai.com 16 | beta.api.openai.com 17 | beta.openai.com 18 | blog.openai.com 19 | cdn.oaistatic.com 20 | cdn.openai.com 21 | community.openai.com 22 | contest.openai.com 23 | debate-game.openai.com 24 | discuss.openai.com 25 | files.oaiusercontent.com 26 | gpt3-openai.com 27 | gym.openai.com 28 | help.openai.com 29 | ios.chat.openai.com 30 | jukebox.openai.com 31 | labs.openai.com 32 | microscope.openai.com 33 | oaistatic.com 34 | openai.com 35 | openai.fund 36 | openai.org 37 | platform.api.openai.com 38 | platform.openai.com 39 | spinningup.openai 40 | chat.openai.com 41 | chatgpt.com 42 | featureassets.org 43 | cdnjs.cloudflare.com 44 | cdn.auth0.com 45 | prodregistryv2.org' >> /tmp/"$1"_domain.txt 46 | dos2unix /tmp/"$1"_domain.txt 47 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 48 | # Prepare domain 49 | # Delete subdomain in file 50 | cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 51 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 52 | sed -i 's/^www.//g' /tmp/"$1"_domain_prepare.txt 53 | # Replace . on \. 54 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 55 | # ipv4 56 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 57 | # ipv6 58 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 59 | } 60 | 61 | # get CIDR from list 62 | get_prefix() { 63 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 64 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 65 | } 66 | 67 | get_prefix 'chatgpt' || echo 'failed' 68 | 69 | # save ipv4 70 | grep -v ':' /tmp/chatgpt.txt | sed 's/\/32//g' > /tmp/chatgpt-ipv4.txt 71 | 72 | # save ipv6 73 | #grep ':' /tmp/chatgpt.txt > /tmp/chatgpt-ipv6.txt 74 | 75 | # Create/Prepare ACL List for Shadowsocks IPv4 76 | echo -e "[bypass_all]\n[proxy_list]" | tee chatgpt/ipv4.acl 77 | 78 | # Create/Prepare ACL List for Shadowsocks IPv6 79 | #echo -e "[bypass_all]\n[proxy_list]" | tee chatgpt/ipv6.acl 80 | 81 | add_domain 'chatgpt' || echo 'failed' 82 | 83 | # sort & uniq 84 | sort -h /tmp/chatgpt-ipv4.txt | uniq >> chatgpt/ipv4.acl 85 | #sort -h /tmp/chatgpt-ipv6.txt | uniq >> chatgpt/ipv6.acl 86 | -------------------------------------------------------------------------------- /cloudflare/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'cloudflare' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/cloudflare.txt | sed 's/\/32//g' > /tmp/cloudflare-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/cloudflare.txt > /tmp/cloudflare-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee cloudflare/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee cloudflare/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/cloudflare-ipv4.txt | uniq >> cloudflare/ipv4.acl 30 | #sort -h /tmp/cloudflare-ipv6.txt | uniq >> cloudflare/ipv6.acl 31 | -------------------------------------------------------------------------------- /cloudflare/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 103.21.244.0/22 4 | 103.22.200.0/22 5 | 103.31.4.0/22 6 | 104.16.0.0/13 7 | 104.24.0.0/14 8 | 108.162.192.0/18 9 | 131.0.72.0/22 10 | 141.101.64.0/18 11 | 162.158.0.0/15 12 | 172.64.0.0/13 13 | 173.245.48.0/20 14 | 188.114.96.0/20 15 | 190.93.240.0/20 16 | 197.234.240.0/22 17 | 198.41.128.0/17 18 | -------------------------------------------------------------------------------- /corbina/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'corbina' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/corbina.txt | sed 's/\/32//g' > /tmp/corbina-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/corbina.txt > /tmp/corbina-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee corbina/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee corbina/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/corbina-ipv4.txt | uniq >> corbina/ipv4.acl 30 | #sort -h /tmp/corbina-ipv6.txt | uniq >> corbina/ipv6.acl 31 | -------------------------------------------------------------------------------- /corbina/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 2.92.0.0/14 4 | 37.144.0.0/14 5 | 62.205.160.0/19 6 | 77.41.224.0/21 7 | 78.106.0.0/15 8 | 83.102.128.0/17 9 | 85.21.0.0/16 10 | 85.249.108.0/22 11 | 85.249.192.0/19 12 | 85.249.32.0/19 13 | 85.249.64.0/20 14 | 85.249.84.0/22 15 | 85.249.88.0/22 16 | 89.178.0.0/15 17 | 93.80.0.0/15 18 | 95.24.0.0/13 19 | 109.71.204.0/22 20 | 128.68.0.0/14 21 | 128.72.0.0/14 22 | 176.14.0.0/15 23 | 195.14.32.0/19 24 | 213.191.0.0/19 25 | 213.234.192.0/18 26 | 217.114.224.0/20 27 | -------------------------------------------------------------------------------- /digitalocean/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'digitalocean' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/digitalocean.txt | sed 's/\/32//g' > /tmp/digitalocean-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/digitalocean.txt > /tmp/digitalocean-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee digitalocean/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee digitalocean/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/digitalocean-ipv4.txt | uniq >> digitalocean/ipv4.acl 30 | #sort -h /tmp/digitalocean-ipv6.txt | uniq >> digitalocean/ipv6.acl 31 | -------------------------------------------------------------------------------- /digitalocean/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.101.104.0/22 4 | 5.101.96.0/21 5 | 24.144.64.0/21 6 | 24.144.74.0/23 7 | 24.144.76.0/22 8 | 24.144.80.0/20 9 | 24.144.96.0/19 10 | 24.199.64.0/18 11 | 37.139.0.0/19 12 | 45.55.0.0/16 13 | 46.101.0.0/16 14 | 64.225.0.0/17 15 | 64.226.64.0/18 16 | 64.227.0.0/17 17 | 64.227.128.0/18 18 | 64.23.128.0/17 19 | 67.205.128.0/18 20 | 67.207.68.0/22 21 | 67.207.72.0/21 22 | 67.207.80.0/20 23 | 68.183.0.0/16 24 | 69.55.48.0/22 25 | 69.55.54.0/23 26 | 69.55.58.0/23 27 | 69.55.60.0/22 28 | 80.240.128.0/20 29 | 82.196.0.0/20 30 | 95.85.1.0/24 31 | 95.85.16.0/20 32 | 95.85.2.0/23 33 | 95.85.32.0/19 34 | 95.85.4.0/22 35 | 95.85.8.0/21 36 | 103.253.145.0/24 37 | 103.253.146.0/23 38 | 104.131.0.0/16 39 | 104.236.0.0/16 40 | 104.248.0.0/16 41 | 107.170.0.0/16 42 | 128.199.0.0/16 43 | 129.212.132.0/22 44 | 129.212.136.0/21 45 | 129.212.144.0/20 46 | 129.212.160.0/21 47 | 134.122.0.0/17 48 | 134.199.130.0/23 49 | 134.199.132.0/22 50 | 134.199.136.0/21 51 | 134.199.144.0/20 52 | 134.199.160.0/19 53 | 134.199.192.0/18 54 | 134.209.0.0/16 55 | 137.184.0.0/17 56 | 137.184.128.0/18 57 | 137.184.192.0/19 58 | 137.184.224.0/20 59 | 137.184.240.0/21 60 | 137.184.248.0/22 61 | 137.184.254.0/23 62 | 138.197.0.0/17 63 | 138.197.128.0/18 64 | 138.197.192.0/19 65 | 138.197.224.0/20 66 | 138.197.240.0/22 67 | 138.197.252.0/22 68 | 138.68.0.0/19 69 | 138.68.128.0/17 70 | 138.68.36.0/22 71 | 138.68.40.0/21 72 | 138.68.48.0/20 73 | 138.68.64.0/18 74 | 139.59.0.0/16 75 | 141.0.169.0/24 76 | 141.0.170.0/24 77 | 142.93.0.0/16 78 | 143.110.128.0/17 79 | 143.198.0.0/17 80 | 143.198.128.0/18 81 | 143.198.192.0/19 82 | 143.198.224.0/20 83 | 143.198.240.0/21 84 | 143.198.248.0/22 85 | 143.244.128.0/18 86 | 143.244.196.0/22 87 | 143.244.200.0/21 88 | 143.244.208.0/21 89 | 143.244.218.0/24 90 | 143.244.220.0/22 91 | 144.126.192.0/18 92 | 146.185.128.0/18 93 | 146.190.0.0/17 94 | 146.190.128.0/19 95 | 146.190.160.0/20 96 | 146.190.176.0/22 97 | 146.190.184.0/21 98 | 146.190.192.0/18 99 | 147.182.128.0/17 100 | 152.42.128.0/17 101 | 157.230.0.0/16 102 | 157.245.0.0/16 103 | 159.203.0.0/16 104 | 159.223.0.0/17 105 | 159.223.128.0/18 106 | 159.223.192.0/19 107 | 159.223.224.0/20 108 | 159.223.240.0/21 109 | 159.223.248.0/22 110 | 159.65.0.0/16 111 | 159.89.0.0/19 112 | 159.89.128.0/17 113 | 159.89.32.0/20 114 | 159.89.48.0/21 115 | 159.89.64.0/18 116 | 161.35.0.0/16 117 | 162.243.0.0/17 118 | 162.243.128.0/19 119 | 162.243.160.0/20 120 | 162.243.177.0/24 121 | 162.243.184.0/22 122 | 162.243.192.0/18 123 | 163.47.8.0/22 124 | 164.90.128.0/18 125 | 164.90.192.0/19 126 | 164.90.224.0/20 127 | 164.90.240.0/21 128 | 164.90.252.0/22 129 | 164.92.128.0/17 130 | 164.92.64.0/18 131 | 165.22.0.0/16 132 | 165.227.0.0/16 133 | 165.232.128.0/18 134 | 165.232.32.0/19 135 | 165.232.64.0/18 136 | 167.172.0.0/16 137 | 167.71.0.0/16 138 | 167.99.0.0/16 139 | 170.64.128.0/17 140 | 174.138.0.0/17 141 | 178.128.0.0/16 142 | 178.62.0.0/16 143 | 185.14.184.0/22 144 | 188.166.0.0/16 145 | 188.226.128.0/17 146 | 192.241.128.0/19 147 | 192.241.160.0/22 148 | 192.241.165.0/24 149 | 192.241.166.0/23 150 | 192.241.168.0/21 151 | 192.241.176.0/20 152 | 192.241.192.0/18 153 | 192.34.56.0/21 154 | 192.81.208.0/20 155 | 198.199.100.0/22 156 | 198.199.104.0/21 157 | 198.199.112.0/20 158 | 198.199.64.0/19 159 | 198.199.96.0/23 160 | 198.199.98.0/24 161 | 198.211.104.0/22 162 | 198.211.108.0/23 163 | 198.211.110.0/24 164 | 198.211.112.0/20 165 | 198.211.96.0/21 166 | 204.48.16.0/20 167 | 206.189.0.0/16 168 | 206.81.0.0/19 169 | 207.154.192.0/18 170 | 208.68.36.0/22 171 | 209.38.0.0/16 172 | 209.97.128.0/18 173 | -------------------------------------------------------------------------------- /discord/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | set -x 5 | 6 | # Add domain in ACL file 7 | add_domain() { 8 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/refs/heads/main/discord/domain.txt > /tmp/"$1"_domain.txt 9 | dos2unix /tmp/"$1"_domain.txt 10 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 11 | # Prepare domain 12 | # Delete subdomain in file 13 | cat /tmp/"$1"_domain.txt | grep -vEe '(.discord.gg)$' > /tmp/"$1"_domain_prepare.txt 14 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 15 | # Replace . on \. 16 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 17 | # ipv4 18 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 19 | # ipv6 20 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 21 | } 22 | 23 | # get CIDR from list 24 | get_prefix() { 25 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 26 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 27 | } 28 | 29 | #get_prefix 'discord' || echo 'failed' 30 | 31 | # save ipv4 32 | #grep -v ':' /tmp/discord.txt | sed 's/\/32//g' > /tmp/discord-ipv4.txt 33 | 34 | # save ipv6 35 | #grep ':' /tmp/discord.txt > /tmp/discord-ipv6.txt 36 | 37 | # Create/Prepare ACL List for Shadowsocks IPv4 38 | echo -e "[bypass_all]\n[proxy_list]" | tee discord/ipv4.acl 39 | 40 | # Create/Prepare ACL List for Shadowsocks IPv6 41 | #echo -e "[bypass_all]\n[proxy_list]" | tee discord/ipv6.acl 42 | 43 | add_domain 'discord' || echo 'failed' 44 | 45 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/refs/heads/main/discord/ipv4_merged.txt | sed 's/\/32//g' >> discord/ipv4.acl 46 | 47 | # sort & uniq 48 | #sort -h /tmp/discord-ipv4.txt | uniq >> discord/ipv4.acl 49 | #sort -h /tmp/discord-ipv6.txt | uniq >> discord/ipv6.acl 50 | -------------------------------------------------------------------------------- /domru/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'domru' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/domru.txt | sed 's/\/32//g' > /tmp/domru-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/domru.txt > /tmp/domru-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee domru/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee domru/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/domru-ipv4.txt | uniq >> domru/ipv4.acl 30 | #sort -h /tmp/domru-ipv6.txt | uniq >> domru/ipv6.acl 31 | -------------------------------------------------------------------------------- /dreamhost/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'dreamhost' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/dreamhost.txt | sed 's/\/32//g' > /tmp/dreamhost-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/dreamhost.txt > /tmp/dreamhost-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee dreamhost/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee dreamhost/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/dreamhost-ipv4.txt | uniq >> dreamhost/ipv4.acl 30 | #sort -h /tmp/dreamhost-ipv6.txt | uniq >> dreamhost/ipv6.acl 31 | -------------------------------------------------------------------------------- /dreamhost/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 64.111.96.0/19 4 | 64.90.32.0/19 5 | 66.33.192.0/19 6 | 67.205.0.0/18 7 | 69.163.128.0/17 8 | 75.119.192.0/19 9 | 107.180.224.0/19 10 | 173.236.128.0/17 11 | 205.196.208.0/20 12 | 208.113.128.0/17 13 | 208.97.128.0/18 14 | -------------------------------------------------------------------------------- /edgecast/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'edgecast' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/edgecast.txt | sed 's/\/32//g' > /tmp/edgecast-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/edgecast.txt > /tmp/edgecast-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee edgecast/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee edgecast/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/edgecast-ipv4.txt | uniq >> edgecast/ipv4.acl 30 | #sort -h /tmp/edgecast-ipv6.txt | uniq >> edgecast/ipv6.acl 31 | -------------------------------------------------------------------------------- /edgecast/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.104.64.0/21 4 | 8.5.249.0/24 5 | 12.202.248.0/24 6 | 23.249.49.0/24 7 | 34.2.64.0/21 8 | 34.2.72.0/22 9 | 34.2.78.0/23 10 | 34.2.80.0/20 11 | 46.22.64.0/20 12 | 49.231.126.0/24 13 | 61.221.181.64/26 14 | 63.250.192.0/19 15 | 64.12.0.0/16 16 | 66.163.160.0/19 17 | 66.185.128.0/19 18 | 66.196.64.0/18 19 | 66.218.64.0/19 20 | 66.228.160.0/19 21 | 66.94.224.0/19 22 | 67.195.0.0/16 23 | 68.130.128.0/23 24 | 68.142.192.0/18 25 | 68.180.128.0/17 26 | 68.232.32.0/20 27 | 69.147.64.0/18 28 | 72.21.80.0/20 29 | 72.30.0.0/16 30 | 74.123.148.0/22 31 | 74.6.0.0/16 32 | 76.13.0.0/16 33 | 93.184.208.0/20 34 | 98.136.0.0/14 35 | 108.161.240.0/20 36 | 110.164.36.0/24 37 | 110.232.176.0/22 38 | 117.103.183.0/24 39 | 117.18.232.0/21 40 | 117.18.80.0/21 41 | 119.46.85.0/24 42 | 121.156.59.224/27 43 | 121.189.46.0/23 44 | 136.228.144.0/24 45 | 152.163.0.0/16 46 | 152.195.0.0/16 47 | 152.199.0.0/16 48 | 155.199.191.0/24 49 | 161.210.0.0/16 50 | 162.208.20.0/22 51 | 172.216.0.0/16 52 | 184.165.0.0/16 53 | 192.152.66.0/24 54 | 192.16.0.0/18 55 | 192.203.190.0/24 56 | 192.229.128.0/17 57 | 192.245.232.0/24 58 | 192.30.0.0/19 59 | 198.178.157.0/24 60 | 198.7.16.0/20 61 | 203.74.4.64/26 62 | 204.29.186.0/23 63 | 205.149.192.0/18 64 | 205.188.0.0/16 65 | 205.221.162.0/23 66 | 205.221.164.0/24 67 | 206.190.32.0/19 68 | 207.126.224.0/20 69 | 208.67.64.0/21 70 | 208.71.40.0/21 71 | 209.131.32.0/19 72 | 209.191.64.0/18 73 | 209.73.160.0/19 74 | 213.175.80.0/24 75 | 216.109.112.0/20 76 | 216.115.96.0/20 77 | 216.145.48.0/20 78 | 216.155.192.0/20 79 | 216.252.96.0/19 80 | 216.39.48.0/20 81 | -------------------------------------------------------------------------------- /expressvpn/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'expressvpn' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/expressvpn.txt | sed 's/\/32//g' > /tmp/expressvpn-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/expressvpn.txt > /tmp/expressvpn-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee expressvpn/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee expressvpn/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/expressvpn-ipv4.txt | uniq >> expressvpn/ipv4.acl 30 | #sort -h /tmp/expressvpn-ipv6.txt | uniq >> expressvpn/ipv6.acl 31 | -------------------------------------------------------------------------------- /facebook/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/antonme/ipnames/master/dns-facebook.txt > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/antonme/ipnames/master/ext-dns-facebook.txt >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | cat /tmp/"$1"_domain.txt | grep -vEe '(.fbcdn.net|.facebook.com|.coca-cola.com|.facebook.net|.cdninstagram.com|.whatsapp.net|.list-manage.com|.list-manage2.com|.list-manage1.com|.www.instagram.com|.instagram.com)$' > /tmp/"$1"_domain_prepare.txt 16 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | # ipv4 20 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 21 | # ipv6 22 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 23 | } 24 | 25 | # get CIDR from list 26 | get_prefix() { 27 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 28 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 29 | } 30 | 31 | #get_prefix 'facebook' || echo 'failed' 32 | 33 | # save ipv4 34 | #grep -v ':' /tmp/facebook.txt | sed 's/\/32//g' > /tmp/facebook-ipv4.txt 35 | 36 | # save ipv6 37 | #grep ':' /tmp/facebook.txt > /tmp/facebook-ipv6.txt 38 | 39 | # Create/Prepare ACL List for Shadowsocks IPv4 40 | echo -e "[bypass_all]\n[proxy_list]" | tee facebook/ipv4.acl 41 | 42 | # Create/Prepare ACL List for Shadowsocks IPv6 43 | #echo -e "[bypass_all]\n[proxy_list]" | tee facebook/ipv6.acl 44 | 45 | add_domain 'facebook' || echo 'failed' 46 | 47 | # sort & uniq 48 | #sort -h /tmp/facebook-ipv4.txt | uniq >> facebook/ipv4.acl 49 | #sort -h /tmp/facebook-ipv6.txt | uniq >> facebook/ipv6.acl 50 | -------------------------------------------------------------------------------- /fastly/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'fastly' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/fastly.txt | sed 's/\/32//g' > /tmp/fastly-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/fastly.txt > /tmp/fastly-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee fastly/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee fastly/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/fastly-ipv4.txt | uniq >> fastly/ipv4.acl 30 | #sort -h /tmp/fastly-ipv6.txt | uniq >> fastly/ipv6.acl 31 | -------------------------------------------------------------------------------- /fastly/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 8.18.217.0/24 4 | 23.154.64.0/24 5 | 23.185.0.0/24 6 | 23.235.32.0/20 7 | 43.249.72.0/22 8 | 63.211.233.2 9 | 64.125.197.168/29 10 | 66.211.168.0/24 11 | 103.244.50.0/24 12 | 103.245.222.0/23 13 | 103.245.224.0/24 14 | 104.156.80.0/20 15 | 104.244.43.0/24 16 | 131.125.96.0/19 17 | 140.248.0.0/16 18 | 146.75.0.0/16 19 | 151.101.0.0/16 20 | 157.5.64.0/18 21 | 157.52.64.0/18 22 | 159.242.243.0/24 23 | 162.219.224.0/22 24 | 162.247.243.0/24 25 | 167.82.0.0/17 26 | 167.82.128.0/20 27 | 167.82.160.0/20 28 | 167.82.224.0/20 29 | 172.111.64.0/18 30 | 185.199.108.0/22 31 | 185.221.87.0/24 32 | 185.31.16.0/22 33 | 198.54.216.0/24 34 | 199.232.0.0/16 35 | 199.27.72.0/21 36 | 199.36.158.0/24 37 | 209.102.206.0/24 38 | -------------------------------------------------------------------------------- /github/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/github/domains.txt > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Add domain (Fixing) 14 | echo "githubusercontent.com 15 | core.windows.net 16 | githubapp.com 17 | github.io" >> /tmp/"$1"_domain.txt 18 | # Delete subdomain in file 19 | cat /tmp/"$1"_domain.txt | grep -vEe '(.githubusercontent.com|.github.com|.core.windows.net|.githubapp.com|.github.io)$' > /tmp/"$1"_domain_prepare.txt 20 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 21 | # Replace . on \. 22 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 23 | # ipv4 24 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 25 | # ipv6 26 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 27 | } 28 | 29 | # get CIDR from list 30 | get_prefix() { 31 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 32 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 33 | } 34 | 35 | get_prefix 'github' || echo 'failed' 36 | 37 | # save ipv4 38 | grep -v ':' /tmp/github.txt | sed 's/\/32//g' > /tmp/github-ipv4.txt 39 | 40 | # save ipv6 41 | #grep ':' /tmp/github.txt > /tmp/github-ipv6.txt 42 | 43 | # Create/Prepare ACL List for Shadowsocks IPv4 44 | echo -e "[bypass_all]\n[proxy_list]" | tee github/ipv4.acl 45 | 46 | # Create/Prepare ACL List for Shadowsocks IPv6 47 | #echo -e "[bypass_all]\n[proxy_list]" | tee github/ipv6.acl 48 | 49 | add_domain 'github' || echo 'failed' 50 | 51 | # sort & uniq 52 | sort -h /tmp/github-ipv4.txt | uniq >> github/ipv4.acl 53 | #sort -h /tmp/github-ipv6.txt | uniq >> github/ipv6.acl 54 | -------------------------------------------------------------------------------- /godaddy/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'godaddy' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/godaddy.txt | sed 's/\/32//g' > /tmp/godaddy-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/godaddy.txt > /tmp/godaddy-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee godaddy/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee godaddy/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/godaddy-ipv4.txt | uniq >> godaddy/ipv4.acl 30 | #sort -h /tmp/godaddy-ipv6.txt | uniq >> godaddy/ipv6.acl 31 | -------------------------------------------------------------------------------- /godaddy/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.175.0.0/19 4 | 5.35.224.0/19 5 | 23.229.128.0/17 6 | 37.122.208.0/21 7 | 37.148.200.0/21 8 | 37.200.96.0/21 9 | 43.255.152.0/22 10 | 45.40.128.0/18 11 | 46.163.104.0/21 12 | 46.163.112.0/21 13 | 46.163.64.0/20 14 | 46.163.84.0/22 15 | 46.163.96.0/22 16 | 46.252.16.0/20 17 | 46.252.192.0/20 18 | 46.32.224.0/19 19 | 50.62.0.0/15 20 | 62.138.128.0/18 21 | 62.75.134.0/24 22 | 62.75.141.0/24 23 | 62.75.142.0/23 24 | 62.75.144.0/21 25 | 62.75.152.0/24 26 | 62.75.155.0/24 27 | 62.75.156.0/22 28 | 62.75.168.0/22 29 | 62.75.173.0/24 30 | 62.75.175.0/24 31 | 62.75.177.0/24 32 | 62.75.184.0/21 33 | 62.75.208.0/22 34 | 63.241.136.0/24 35 | 64.13.192.0/18 36 | 64.202.160.0/19 37 | 64.207.128.0/18 38 | 66.210.39.0/24 39 | 68.178.128.0/17 40 | 70.32.64.0/18 41 | 72.10.32.0/19 42 | 72.167.0.0/16 43 | 72.47.192.0/18 44 | 80.237.128.0/23 45 | 80.237.130.0/24 46 | 80.237.132.0/23 47 | 80.237.135.0/24 48 | 80.237.136.0/22 49 | 80.237.142.0/23 50 | 80.237.144.0/21 51 | 80.237.160.0/20 52 | 80.237.194.0/23 53 | 80.237.212.0/24 54 | 80.237.214.0/23 55 | 80.237.248.0/23 56 | 80.237.251.0/24 57 | 80.237.252.0/22 58 | 80.67.16.0/20 59 | 80.90.192.0/20 60 | 81.21.64.0/20 61 | 83.169.0.0/19 62 | 83.169.32.0/20 63 | 83.169.52.0/22 64 | 85.25.16.0/23 65 | 85.25.168.0/22 66 | 87.230.0.0/19 67 | 87.230.104.0/22 68 | 87.230.110.0/23 69 | 87.230.112.0/21 70 | 87.230.126.0/24 71 | 87.230.32.0/22 72 | 87.230.40.0/21 73 | 87.230.48.0/23 74 | 87.230.60.0/22 75 | 87.230.64.0/24 76 | 87.230.66.0/23 77 | 87.230.68.0/22 78 | 87.230.76.0/22 79 | 87.230.80.0/23 80 | 87.230.84.0/22 81 | 87.230.88.0/21 82 | 88.80.192.0/19 83 | 91.109.0.0/20 84 | 91.250.108.0/22 85 | 91.250.112.0/20 86 | 91.250.64.0/21 87 | 91.250.80.0/21 88 | 91.250.88.0/22 89 | 91.250.96.0/21 90 | 92.51.128.0/20 91 | 92.51.144.0/21 92 | 92.51.160.0/21 93 | 92.51.170.0/24 94 | 92.51.180.0/22 95 | 92.60.112.0/20 96 | 93.180.152.0/21 97 | 93.187.232.0/21 98 | 94.136.32.0/19 99 | 97.74.0.0/16 100 | 103.1.172.0/22 101 | 103.44.220.0/24 102 | 103.87.189.0/24 103 | 103.87.190.0/23 104 | 104.238.64.0/18 105 | 107.180.0.0/17 106 | 109.104.64.0/19 107 | 109.239.48.0/20 108 | 118.139.160.0/19 109 | 132.148.0.0/16 110 | 141.0.16.0/21 111 | 146.255.32.0/20 112 | 148.66.128.0/19 113 | 148.72.0.0/16 114 | 160.153.0.0/16 115 | 166.62.0.0/17 116 | 173.201.0.0/16 117 | 176.221.40.0/21 118 | 176.28.0.0/20 119 | 176.28.16.0/21 120 | 176.28.32.0/20 121 | 176.28.48.0/21 122 | 176.28.56.0/22 123 | 176.28.62.0/24 124 | 176.32.224.0/21 125 | 178.77.112.0/21 126 | 178.77.124.0/24 127 | 178.77.64.0/20 128 | 178.77.80.0/21 129 | 178.77.96.0/20 130 | 182.50.128.0/19 131 | 184.168.0.0/16 132 | 185.139.72.0/22 133 | 185.2.128.0/22 134 | 185.34.212.0/22 135 | 185.7.248.0/22 136 | 185.85.48.0/22 137 | 188.121.32.0/19 138 | 188.93.8.0/21 139 | 192.169.128.0/17 140 | 192.186.192.0/18 141 | 193.138.96.0/24 142 | 193.17.17.0/24 143 | 194.145.192.0/23 144 | 195.137.212.0/23 145 | 198.12.128.0/17 146 | 198.71.128.0/17 147 | 202.3.13.0/24 148 | 203.124.96.0/19 149 | 205.186.128.0/18 150 | 208.109.0.0/16 151 | 212.40.161.0/24 152 | 212.40.162.0/23 153 | 212.40.164.0/23 154 | 212.40.167.0/24 155 | 212.40.169.0/24 156 | 212.40.170.0/23 157 | 212.40.172.0/23 158 | 212.40.177.0/24 159 | 212.40.178.0/23 160 | 212.40.180.0/24 161 | 212.40.184.0/23 162 | 212.40.187.0/24 163 | 212.40.188.0/22 164 | 212.48.64.0/19 165 | 212.67.192.0/19 166 | 216.69.128.0/18 167 | 216.70.64.0/18 168 | 217.115.128.0/21 169 | 217.115.141.0/24 170 | 217.115.142.0/23 171 | 217.115.145.0/24 172 | 217.115.146.0/23 173 | 217.115.152.0/21 174 | 217.119.49.0/24 175 | 217.119.50.0/24 176 | 217.119.54.0/24 177 | 217.119.56.0/24 178 | 217.172.160.0/23 179 | 217.172.162.0/24 180 | 217.172.164.0/24 181 | 217.199.160.0/19 182 | -------------------------------------------------------------------------------- /google-all/README.md: -------------------------------------------------------------------------------- 1 | Google+Google Cloud+YouTube -------------------------------------------------------------------------------- /google-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'google-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/google-all.txt | sed 's/\/32//g' > /tmp/google-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/google-all.txt > /tmp/google-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee google-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee google-all/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/google-all-ipv4.txt | uniq >> google-all/ipv4.acl 30 | #sort -h /tmp/google-all-ipv6.txt | uniq >> google-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /google/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'google' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/google.txt | sed 's/\/32//g' > /tmp/google-ipv4.txt 18 | sed -i '/^0.0.0.0/d' /tmp/google-ipv4.txt 19 | sed -i '/^127.0.0.1/d' /tmp/google-ipv4.txt 20 | # Exclude Google DNS subnet's 21 | sed -i '/^8.8.4.0/d' /tmp/google-ipv4.txt 22 | sed -i '/^8.8.8.0/d' /tmp/google-ipv4.txt 23 | 24 | # save ipv6 25 | #grep ':' /tmp/google.txt > /tmp/google-ipv6.txt 26 | 27 | # Create/Prepare ACL List for Shadowsocks IPv4 28 | echo -e "[bypass_all]\n[proxy_list]" | tee google/ipv4.acl 29 | 30 | # Create/Prepare ACL List for Shadowsocks IPv6 31 | #echo -e "[bypass_all]\n[proxy_list]" | tee google/ipv6.acl 32 | 33 | # sort & uniq 34 | sort -h /tmp/google-ipv4.txt | uniq >> google/ipv4.acl 35 | #sort -h /tmp/google-ipv6.txt | uniq >> google/ipv6.acl 36 | -------------------------------------------------------------------------------- /googlecloud/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'googlecloud' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/googlecloud.txt | sed 's/\/32//g' > /tmp/googlecloud-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/googlecloud.txt > /tmp/googlecloud-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee googlecloud/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee googlecloud/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/googlecloud-ipv4.txt | uniq >> googlecloud/ipv4.acl 30 | #sort -h /tmp/googlecloud-ipv6.txt | uniq >> googlecloud/ipv6.acl 31 | -------------------------------------------------------------------------------- /googlecloud/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 8.34.208.0/20 4 | 8.35.192.0/21 5 | 8.35.200.0/23 6 | 23.236.48.0/20 7 | 23.251.128.0/19 8 | 34.0.0.0/17 9 | 34.0.128.0/18 10 | 34.0.192.0/19 11 | 34.0.224.0/22 12 | 34.0.240.0/20 13 | 34.100.0.0/16 14 | 34.1.0.0/18 15 | 34.1.128.0/17 16 | 34.101.128.0/17 17 | 34.101.18.0/24 18 | 34.101.20.0/22 19 | 34.101.24.0/22 20 | 34.101.32.0/19 21 | 34.101.64.0/18 22 | 34.102.0.0/15 23 | 34.104.0.0/14 24 | 34.108.0.0/16 25 | 34.110.128.0/17 26 | 34.111.0.0/16 27 | 34.116.0.0/21 28 | 34.116.128.0/17 29 | 34.116.64.0/18 30 | 34.117.0.0/16 31 | 34.118.0.0/17 32 | 34.118.128.0/18 33 | 34.118.192.0/20 34 | 34.118.240.0/20 35 | 34.120.0.0/14 36 | 34.124.0.0/18 37 | 34.124.112.0/20 38 | 34.124.128.0/17 39 | 34.124.64.0/20 40 | 34.124.80.0/23 41 | 34.124.84.0/22 42 | 34.124.88.0/23 43 | 34.124.92.0/22 44 | 34.125.0.0/16 45 | 34.126.128.0/18 46 | 34.126.192.0/19 47 | 34.126.64.0/18 48 | 34.127.0.0/17 49 | 34.127.177.0/24 50 | 34.127.178.0/23 51 | 34.127.180.0/24 52 | 34.127.184.0/21 53 | 34.128.128.0/18 54 | 34.128.32.0/22 55 | 34.128.36.0/23 56 | 34.128.42.0/23 57 | 34.128.44.0/22 58 | 34.128.48.0/23 59 | 34.128.52.0/22 60 | 34.128.58.0/23 61 | 34.128.60.0/22 62 | 34.128.64.0/18 63 | 34.129.0.0/16 64 | 34.130.0.0/15 65 | 34.132.0.0/14 66 | 34.136.0.0/14 67 | 34.140.0.0/15 68 | 34.142.0.0/16 69 | 34.143.128.0/17 70 | 34.144.192.0/18 71 | 34.145.0.0/16 72 | 34.146.0.0/15 73 | 34.148.0.0/14 74 | 34.152.0.0/18 75 | 34.152.64.0/22 76 | 34.152.68.0/23 77 | 34.152.72.0/21 78 | 34.152.80.0/23 79 | 34.152.84.0/22 80 | 34.153.224.0/23 81 | 34.153.230.0/24 82 | 34.153.232.0/22 83 | 34.153.236.0/24 84 | 34.153.240.0/21 85 | 34.153.250.0/23 86 | 34.153.32.0/23 87 | 34.153.38.0/24 88 | 34.153.40.0/22 89 | 34.153.44.0/24 90 | 34.153.48.0/21 91 | 34.153.58.0/23 92 | 34.154.0.0/15 93 | 34.157.0.0/21 94 | 34.157.112.0/21 95 | 34.157.12.0/22 96 | 34.157.121.0/24 97 | 34.157.124.0/22 98 | 34.157.128.0/21 99 | 34.157.136.0/23 100 | 34.157.140.0/22 101 | 34.157.144.0/20 102 | 34.157.160.0/19 103 | 34.157.16.0/20 104 | 34.157.192.0/20 105 | 34.157.208.0/22 106 | 34.157.212.0/23 107 | 34.157.215.0/24 108 | 34.157.216.0/23 109 | 34.157.220.0/22 110 | 34.157.224.0/20 111 | 34.157.240.0/21 112 | 34.157.249.0/24 113 | 34.157.250.0/23 114 | 34.157.252.0/22 115 | 34.157.32.0/19 116 | 34.157.64.0/20 117 | 34.157.80.0/22 118 | 34.157.8.0/23 119 | 34.157.84.0/23 120 | 34.157.87.0/24 121 | 34.157.88.0/21 122 | 34.157.96.0/20 123 | 34.159.0.0/16 124 | 34.160.0.0/14 125 | 34.16.0.0/12 126 | 34.164.0.0/15 127 | 34.166.0.0/16 128 | 34.168.0.0/13 129 | 34.176.0.0/16 130 | 34.177.32.0/22 131 | 34.177.36.0/23 132 | 34.177.40.0/21 133 | 34.177.48.0/21 134 | 34.32.0.0/15 135 | 34.34.0.0/17 136 | 34.34.128.0/18 137 | 34.34.216.0/21 138 | 34.35.0.0/16 139 | 34.36.0.0/14 140 | 34.40.0.0/15 141 | 34.42.0.0/16 142 | 34.44.0.0/14 143 | 34.48.0.0/15 144 | 34.50.0.0/17 145 | 34.51.0.0/17 146 | 34.53.0.0/17 147 | 34.54.0.0/16 148 | 34.64.0.0/11 149 | 34.96.0.0/14 150 | 35.184.0.0/14 151 | 35.188.0.0/15 152 | 35.190.0.0/17 153 | 35.190.128.0/18 154 | 35.190.192.0/19 155 | 35.190.224.0/20 156 | 35.190.240.0/22 157 | 35.190.247.0/24 158 | 35.191.0.0/16 159 | 35.192.0.0/14 160 | 35.196.0.0/15 161 | 35.198.0.0/16 162 | 35.199.0.0/17 163 | 35.199.128.0/18 164 | 35.200.0.0/13 165 | 35.208.0.0/13 166 | 35.216.0.0/15 167 | 35.219.0.0/17 168 | 35.219.128.0/18 169 | 35.219.192.0/24 170 | 35.219.224.0/19 171 | 35.220.0.0/14 172 | 35.224.0.0/13 173 | 35.232.0.0/15 174 | 35.234.0.0/16 175 | 35.235.0.0/17 176 | 35.235.192.0/20 177 | 35.235.216.0/21 178 | 35.235.224.0/20 179 | 35.236.0.0/14 180 | 35.240.0.0/13 181 | 64.233.160.0/19 182 | 66.102.0.0/20 183 | 66.249.80.0/20 184 | 72.14.192.0/18 185 | 74.125.0.0/16 186 | 104.154.0.0/15 187 | 104.196.0.0/14 188 | 107.167.160.0/19 189 | 107.178.192.0/18 190 | 108.170.192.0/20 191 | 108.170.208.0/21 192 | 108.170.216.0/22 193 | 108.170.220.0/23 194 | 108.170.222.0/24 195 | 108.177.8.0/21 196 | 108.177.96.0/19 197 | 108.59.80.0/20 198 | 130.211.0.0/16 199 | 146.148.16.0/20 200 | 146.148.2.0/23 201 | 146.148.32.0/19 202 | 146.148.4.0/22 203 | 146.148.64.0/18 204 | 146.148.8.0/21 205 | 162.216.148.0/22 206 | 162.222.176.0/21 207 | 172.217.0.0/19 208 | 172.217.128.0/19 209 | 172.217.160.0/20 210 | 172.217.192.0/19 211 | 172.217.32.0/20 212 | 172.253.112.0/20 213 | 172.253.56.0/21 214 | 173.194.0.0/16 215 | 173.255.112.0/20 216 | 192.158.28.0/22 217 | 199.192.112.0/22 218 | 199.223.232.0/22 219 | 199.223.236.0/23 220 | 208.68.108.0/23 221 | 209.85.128.0/17 222 | 216.239.32.0/19 223 | 216.58.192.0/19 224 | -------------------------------------------------------------------------------- /hetzner/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'hetzner' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/hetzner.txt | sed 's/\/32//g' > /tmp/hetzner-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/hetzner.txt > /tmp/hetzner-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee hetzner/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee hetzner/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/hetzner-ipv4.txt | uniq >> hetzner/ipv4.acl 30 | #sort -h /tmp/hetzner-ipv6.txt | uniq >> hetzner/ipv6.acl 31 | -------------------------------------------------------------------------------- /hetzner/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.161.0.0/16 4 | 5.223.0.0/16 5 | 5.75.128.0/17 6 | 5.78.0.0/16 7 | 5.9.0.0/16 8 | 23.88.0.0/17 9 | 31.22.72.0/24 10 | 37.27.0.0/16 11 | 45.136.70.0/23 12 | 45.145.227.0/24 13 | 45.148.28.0/22 14 | 45.15.99.0/24 15 | 46.4.0.0/16 16 | 46.62.128.0/17 17 | 49.12.0.0/15 18 | 65.108.0.0/15 19 | 65.21.0.0/16 20 | 78.138.62.0/24 21 | 78.46.0.0/15 22 | 82.24.79.0/24 23 | 83.219.100.0/22 24 | 85.10.192.0/18 25 | 88.198.0.0/16 26 | 88.99.0.0/16 27 | 91.107.128.0/17 28 | 91.190.240.0/21 29 | 91.98.0.0/15 30 | 94.130.0.0/16 31 | 94.72.141.0/24 32 | 95.216.0.0/15 33 | 116.202.0.0/15 34 | 128.140.0.0/17 35 | 135.181.0.0/16 36 | 136.243.0.0/16 37 | 138.199.128.0/17 38 | 138.201.0.0/16 39 | 139.28.242.0/23 40 | 142.132.128.0/17 41 | 144.76.0.0/16 42 | 148.251.0.0/16 43 | 157.180.0.0/17 44 | 157.90.0.0/16 45 | 159.69.0.0/16 46 | 162.55.0.0/16 47 | 167.233.0.0/16 48 | 167.235.0.0/16 49 | 168.119.0.0/16 50 | 171.25.225.0/24 51 | 176.9.0.0/16 52 | 178.156.128.0/17 53 | 178.212.75.0/24 54 | 178.63.0.0/16 55 | 185.107.52.0/22 56 | 185.110.95.0/24 57 | 185.112.180.0/24 58 | 185.12.64.0/22 59 | 185.126.28.0/22 60 | 185.136.140.0/23 61 | 185.157.176.0/22 62 | 185.157.83.0/24 63 | 185.171.224.0/22 64 | 185.189.228.0/22 65 | 185.213.45.0/24 66 | 185.216.237.0/24 67 | 185.226.99.0/24 68 | 185.228.8.0/23 69 | 185.50.120.0/23 70 | 188.245.0.0/16 71 | 188.34.128.0/17 72 | 188.40.0.0/16 73 | 193.110.6.0/23 74 | 193.163.198.0/24 75 | 193.223.77.0/24 76 | 193.47.99.0/24 77 | 194.145.226.0/24 78 | 194.35.12.0/23 79 | 194.42.180.0/22 80 | 194.42.184.0/22 81 | 194.62.106.0/24 82 | 195.201.0.0/16 83 | 195.248.224.0/24 84 | 195.60.226.0/24 85 | 197.242.84.0/22 86 | 201.131.3.0/24 87 | 204.29.146.0/24 88 | 213.133.96.0/19 89 | 213.232.193.0/24 90 | 213.239.192.0/18 91 | 216.55.108.0/22 92 | 217.78.237.0/24 93 | -------------------------------------------------------------------------------- /hostgator/ipv4.acl: -------------------------------------------------------------------------------- 1 | ../bluehost/ipv4.acl -------------------------------------------------------------------------------- /huaweicloud/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'huaweicloud' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/huaweicloud.txt | sed 's/\/32//g' > /tmp/huaweicloud-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/huaweicloud.txt > /tmp/huaweicloud-ipv6.txt 21 | 22 | # Create/Prepare ACL List for HuaweiCloud IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee huaweicloud/ipv4.acl 24 | 25 | # Create/Prepare ACL List for HuaweiCloud IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee huaweicloud/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/huaweicloud-ipv4.txt | uniq >> huaweicloud/ipv4.acl 30 | #sort -h /tmp/huaweicloud-ipv6.txt | uniq >> huaweicloud/ipv6.acl 31 | -------------------------------------------------------------------------------- /huaweicloud/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 1.178.32.0/19 4 | 14.137.128.0/18 5 | 27.106.0.0/17 6 | 27.255.0.0/18 7 | 42.201.128.0/17 8 | 43.225.140.0/22 9 | 43.255.104.0/22 10 | 45.191.112.0/22 11 | 45.194.104.0/21 12 | 45.199.144.0/22 13 | 45.202.128.0/18 14 | 45.203.32.0/20 15 | 45.207.0.0/22 16 | 46.250.160.0/19 17 | 49.0.192.0/18 18 | 62.245.0.0/19 19 | 80.238.128.0/17 20 | 83.101.0.0/17 21 | 87.119.0.0/18 22 | 89.150.192.0/18 23 | 94.244.128.0/18 24 | 94.45.160.0/19 25 | 94.74.64.0/18 26 | 101.44.0.0/16 27 | 101.46.0.0/16 28 | 103.148.106.0/24 29 | 103.198.203.0/24 30 | 103.215.0.0/23 31 | 103.215.3.0/24 32 | 103.239.72.0/22 33 | 103.240.156.0/22 34 | 103.255.60.0/22 35 | 103.69.140.0/22 36 | 103.84.110.0/24 37 | 110.238.64.0/18 38 | 110.239.184.0/21 39 | 110.239.64.0/18 40 | 110.41.208.0/23 41 | 110.41.210.0/24 42 | 110.41.224.0/19 43 | 110.41.90.0/24 44 | 111.119.192.0/18 45 | 111.91.0.0/17 46 | 114.119.128.0/18 47 | 115.167.32.0/20 48 | 115.167.80.0/20 49 | 115.30.32.0/19 50 | 116.66.184.0/22 51 | 116.90.245.0/24 52 | 119.12.160.0/20 53 | 119.13.160.0/20 54 | 119.13.248.0/21 55 | 119.13.32.0/20 56 | 119.13.64.0/18 57 | 119.8.0.0/16 58 | 121.91.152.0/21 59 | 121.91.168.0/21 60 | 121.91.200.0/21 61 | 122.10.0.0/17 62 | 122.8.128.0/18 63 | 123.60.192.0/20 64 | 124.155.192.0/19 65 | 124.243.128.0/18 66 | 124.71.240.0/24 67 | 124.71.248.0/22 68 | 124.71.252.0/23 69 | 124.81.0.0/16 70 | 139.9.98.0/23 71 | 146.174.128.0/18 72 | 148.145.128.0/17 73 | 149.232.128.0/19 74 | 150.40.128.0/17 75 | 154.220.192.0/19 76 | 154.55.136.0/24 77 | 154.81.16.0/20 78 | 154.83.0.0/23 79 | 154.86.32.0/19 80 | 154.93.100.0/23 81 | 154.93.104.0/23 82 | 156.227.22.0/23 83 | 156.230.32.0/20 84 | 156.230.64.0/18 85 | 156.232.16.0/20 86 | 156.240.128.0/18 87 | 156.249.32.0/20 88 | 156.253.16.0/20 89 | 157.254.208.0/21 90 | 159.138.0.0/16 91 | 166.108.192.0/18 92 | 176.52.128.0/19 93 | 180.87.192.0/18 94 | 182.160.0.0/18 95 | 183.87.128.0/19 96 | 183.87.32.0/19 97 | 183.87.64.0/18 98 | 188.119.192.0/18 99 | 188.239.0.0/18 100 | 188.240.16.0/20 101 | 188.241.32.0/20 102 | 189.1.192.0/18 103 | 189.28.96.0/19 104 | 190.92.192.0/18 105 | 193.105.244.0/23 106 | 193.84.248.0/23 107 | 201.77.32.0/20 108 | 202.170.88.0/21 109 | 202.68.198.0/24 110 | 202.68.201.0/24 111 | 202.76.128.0/18 112 | 202.77.64.0/20 113 | 202.93.154.0/24 114 | 203.123.80.0/20 115 | 203.167.20.0/22 116 | 203.170.63.0/24 117 | 203.207.62.0/24 118 | 212.34.192.0/19 119 | 213.250.128.0/18 120 | 219.83.0.0/17 121 | -------------------------------------------------------------------------------- /imdb/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/refs/heads/master/rule/Shadowrocket/IMDB/IMDB.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/refs/heads/master/data/imdb | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | grep -i \. | sort | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'imdb' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/imdb.txt | sed 's/\/32//g' > /tmp/imdb-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/imdb.txt > /tmp/imdb-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee imdb/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee imdb/ipv6.acl 46 | 47 | add_domain 'imdb' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/imdb-ipv4.txt | uniq >> imdb/ipv4.acl 51 | #sort -h /tmp/imdb-ipv6.txt | uniq >> imdb/ipv6.acl 52 | -------------------------------------------------------------------------------- /imdb/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)boxofficemojo\.com$ 4 | (?:^|\.)imdb$ 5 | (?:^|\.)imdb\.com$ 6 | (?:^|\.)imdb\.to$ 7 | (?:^|\.)media-imdb\.com$ 8 | -------------------------------------------------------------------------------- /imperva/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'imperva' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/imperva.txt | sed 's/\/32//g' > /tmp/imperva-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/imperva.txt > /tmp/imperva-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee imperva/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee imperva/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/imperva-ipv4.txt | uniq >> imperva/ipv4.acl 30 | #sort -h /tmp/imperva-ipv6.txt | uniq >> imperva/ipv6.acl 31 | -------------------------------------------------------------------------------- /imperva/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 12.111.223.0/24 4 | 12.175.119.0/24 5 | 42.200.32.0/24 6 | 42.200.61.0/24 7 | 43.255.130.0/23 8 | 45.162.0.0/23 9 | 45.162.2.0/24 10 | 45.223.0.0/16 11 | 45.60.0.0/16 12 | 45.64.64.0/22 13 | 66.179.86.0/23 14 | 66.206.199.0/24 15 | 66.206.201.0/24 16 | 68.65.120.0/22 17 | 80.244.170.0/24 18 | 91.109.248.0/22 19 | 91.109.252.0/23 20 | 91.109.254.0/24 21 | 91.231.192.0/22 22 | 103.173.34.0/23 23 | 103.174.173.0/24 24 | 103.225.240.0/23 25 | 103.23.251.0/24 26 | 103.28.176.0/22 27 | 103.28.248.0/22 28 | 103.77.142.0/24 29 | 104.219.248.0/22 30 | 107.154.0.0/16 31 | 122.11.196.0/24 32 | 129.33.53.0/24 33 | 129.35.157.0/24 34 | 129.35.158.0/23 35 | 129.35.176.0/22 36 | 129.35.190.0/23 37 | 129.35.208.0/23 38 | 129.35.210.0/24 39 | 129.35.212.0/24 40 | 129.35.226.0/23 41 | 129.35.236.0/22 42 | 129.35.62.0/23 43 | 129.41.180.0/22 44 | 129.41.184.0/22 45 | 129.41.188.0/23 46 | 131.125.128.0/17 47 | 134.159.88.0/24 48 | 139.71.192.0/22 49 | 149.126.72.0/21 50 | 152.135.132.0/24 51 | 157.20.106.0/23 52 | 162.213.248.0/21 53 | 162.255.116.0/22 54 | 166.81.2.0/24 55 | 166.81.62.0/23 56 | 166.81.83.0/24 57 | 166.81.84.0/24 58 | 170.224.160.0/22 59 | 170.224.164.0/23 60 | 170.224.166.0/24 61 | 170.224.168.0/23 62 | 170.224.170.0/24 63 | 170.224.176.0/22 64 | 170.224.208.0/23 65 | 170.225.111.0/24 66 | 170.225.112.0/23 67 | 170.225.114.0/24 68 | 170.225.182.0/23 69 | 170.225.188.0/22 70 | 170.225.230.0/23 71 | 170.225.246.0/23 72 | 170.225.93.0/24 73 | 170.225.94.0/24 74 | 170.226.39.0/24 75 | 177.91.68.0/22 76 | 179.0.27.0/24 77 | 180.94.30.0/23 78 | 185.11.124.0/22 79 | 185.154.244.0/22 80 | 192.230.64.0/18 81 | 192.64.112.0/21 82 | 192.83.128.0/18 83 | 192.86.36.0/22 84 | 198.143.32.0/19 85 | 198.187.28.0/22 86 | 198.233.176.0/24 87 | 198.37.48.0/23 88 | 198.37.50.0/24 89 | 198.37.52.0/24 90 | 198.37.54.0/24 91 | 198.37.57.0/24 92 | 198.54.244.0/23 93 | 198.54.62.0/23 94 | 199.180.140.0/22 95 | 199.188.200.0/21 96 | 199.193.6.0/23 97 | 199.74.254.0/24 98 | 199.83.128.0/21 99 | 200.1.175.0/24 100 | 200.34.201.0/24 101 | 200.38.97.0/24 102 | 201.220.37.0/24 103 | 201.220.56.0/24 104 | 201.221.124.0/23 105 | 202.47.81.0/24 106 | 202.70.32.0/24 107 | 203.0.194.0/24 108 | 203.0.202.0/24 109 | 203.18.174.0/24 110 | 204.228.23.0/24 111 | 205.207.214.0/24 112 | 206.82.213.0/24 113 | 212.54.140.0/24 114 | 213.253.215.0/24 115 | 216.74.163.0/24 116 | 217.147.124.0/22 117 | -------------------------------------------------------------------------------- /intel/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Intel/Intel.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/intel | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'intel' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/intel.txt | sed 's/\/32//g' > /tmp/intel-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/intel.txt > /tmp/intel-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee intel/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee intel/ipv6.acl 46 | 47 | add_domain 'intel' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/intel-ipv4.txt | uniq >> intel/ipv4.acl 51 | #sort -h /tmp/intel-ipv6.txt | uniq >> intel/ipv6.acl 52 | -------------------------------------------------------------------------------- /ionos/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'ionos' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/ionos.txt | sed 's/\/32//g' > /tmp/ionos-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/ionos.txt > /tmp/ionos-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee ionos/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee ionos/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/ionos-ipv4.txt | uniq >> ionos/ipv4.acl 30 | #sort -h /tmp/ionos-ipv6.txt | uniq >> ionos/ipv6.acl 31 | -------------------------------------------------------------------------------- /ionos/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.250.176.0/20 4 | 46.16.72.0/21 5 | 50.21.176.0/20 6 | 62.151.160.0/21 7 | 62.151.176.0/21 8 | 65.38.96.0/22 9 | 66.175.232.0/21 10 | 66.179.136.0/22 11 | 66.179.188.0/22 12 | 66.179.208.0/22 13 | 66.179.240.0/22 14 | 66.179.248.0/21 15 | 66.179.80.0/22 16 | 66.179.92.0/22 17 | 67.217.240.0/21 18 | 69.48.200.0/21 19 | 70.35.192.0/20 20 | 74.208.0.0/16 21 | 77.68.0.0/17 22 | 78.137.96.0/21 23 | 79.99.40.0/21 24 | 81.169.190.0/24 25 | 81.173.112.0/22 26 | 82.165.0.0/16 27 | 82.223.0.0/16 28 | 85.184.248.0/22 29 | 85.214.10.0/24 30 | 85.214.12.0/24 31 | 85.214.6.0/24 32 | 85.215.128.0/17 33 | 85.215.32.0/19 34 | 85.215.64.0/20 35 | 85.215.96.0/19 36 | 87.106.0.0/16 37 | 88.208.192.0/18 38 | 93.90.192.0/20 39 | 93.93.112.0/21 40 | 94.143.136.0/21 41 | 104.192.4.0/22 42 | 104.219.40.0/22 43 | 104.254.244.0/22 44 | 108.175.0.0/20 45 | 109.228.0.0/18 46 | 157.97.104.0/21 47 | 158.222.102.0/23 48 | 162.222.200.0/21 49 | 162.254.24.0/22 50 | 162.255.84.0/22 51 | 185.122.180.0/22 52 | 185.127.30.0/24 53 | 185.132.36.0/22 54 | 185.132.40.0/21 55 | 185.48.116.0/22 56 | 185.5.26.0/24 57 | 185.56.148.0/22 58 | 192.152.28.0/24 59 | 192.195.77.0/24 60 | 192.206.141.0/24 61 | 192.67.197.0/24 62 | 192.96.159.0/24 63 | 194.126.206.0/24 64 | 194.156.84.0/23 65 | 194.164.120.0/21 66 | 194.164.160.0/20 67 | 194.164.16.0/20 68 | 194.164.192.0/20 69 | 194.164.4.0/22 70 | 194.164.48.0/20 71 | 194.164.8.0/22 72 | 194.164.88.0/21 73 | 195.20.224.0/19 74 | 198.251.64.0/20 75 | 198.71.48.0/20 76 | 208.94.36.0/22 77 | 209.46.120.0/21 78 | 212.132.64.0/18 79 | 212.227.0.0/16 80 | 213.165.64.0/19 81 | 213.171.192.0/19 82 | 213.244.192.0/24 83 | 216.225.192.0/20 84 | 216.250.112.0/20 85 | 217.154.0.0/21 86 | 217.154.112.0/21 87 | 217.154.120.0/23 88 | 217.154.124.0/23 89 | 217.154.126.0/24 90 | 217.154.13.0/24 91 | 217.154.14.0/23 92 | 217.154.16.0/21 93 | 217.154.192.0/20 94 | 217.154.208.0/24 95 | 217.154.210.0/23 96 | 217.154.212.0/22 97 | 217.154.216.0/23 98 | 217.154.218.0/24 99 | 217.154.220.0/24 100 | 217.154.222.0/23 101 | 217.154.224.0/22 102 | 217.154.228.0/23 103 | 217.154.231.0/24 104 | 217.154.232.0/22 105 | 217.154.237.0/24 106 | 217.154.238.0/23 107 | 217.154.240.0/22 108 | 217.154.24.0/24 109 | 217.154.248.0/24 110 | 217.154.26.0/23 111 | 217.154.29.0/24 112 | 217.154.50.0/23 113 | 217.154.52.0/22 114 | 217.154.56.0/21 115 | 217.154.64.0/21 116 | 217.154.74.0/23 117 | 217.154.76.0/22 118 | 217.154.80.0/21 119 | 217.154.8.0/22 120 | 217.154.88.0/23 121 | 217.154.91.0/24 122 | 217.154.92.0/22 123 | 217.160.0.0/16 124 | 217.174.240.0/20 125 | 217.72.192.0/20 126 | 217.73.68.0/23 127 | 217.76.128.0/19 128 | -------------------------------------------------------------------------------- /kamatera/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'kamatera' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/kamatera.txt | sed 's/\/32//g' > /tmp/kamatera-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/kamatera.txt > /tmp/kamatera-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee kamatera/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee kamatera/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/kamatera-ipv4.txt | uniq >> kamatera/ipv4.acl 30 | #sort -h /tmp/kamatera-ipv6.txt | uniq >> kamatera/ipv6.acl 31 | -------------------------------------------------------------------------------- /kamatera/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.100.248.0/21 4 | 31.133.100.0/24 5 | 31.133.102.0/23 6 | 45.83.40.0/24 7 | 45.83.42.0/23 8 | 45.93.92.0/22 9 | 62.219.10.0/24 10 | 62.219.106.0/24 11 | 62.219.14.0/24 12 | 62.219.197.0/24 13 | 62.219.83.0/24 14 | 63.250.61.0/24 15 | 63.250.62.0/23 16 | 80.244.173.0/24 17 | 80.244.174.0/23 18 | 81.28.7.0/24 19 | 83.229.70.0/23 20 | 83.229.72.0/23 21 | 83.229.74.0/24 22 | 91.198.70.0/24 23 | 91.202.168.0/22 24 | 91.223.106.0/24 25 | 91.226.72.0/24 26 | 91.226.76.0/24 27 | 91.228.126.0/23 28 | 103.45.244.0/24 29 | 109.207.76.0/24 30 | 109.207.79.0/24 31 | 185.106.128.0/22 32 | 185.139.231.0/24 33 | 185.159.72.0/23 34 | 185.159.74.0/24 35 | 185.162.124.0/23 36 | 185.162.126.0/24 37 | 185.220.207.0/24 38 | 185.229.226.0/24 39 | 185.241.4.0/22 40 | 185.253.72.0/23 41 | 185.253.75.0/24 42 | 185.28.152.0/22 43 | 185.47.173.0/24 44 | 185.47.175.0/24 45 | 185.56.72.0/22 46 | 188.191.147.0/24 47 | 192.117.146.0/24 48 | 193.218.207.128/25 49 | 194.36.89.0/24 50 | 194.36.90.0/23 51 | 194.37.83.0/24 52 | 195.238.120.0/23 53 | 195.28.180.0/23 54 | 212.115.111.0/24 55 | 212.80.204.0/22 56 | -------------------------------------------------------------------------------- /kinopub/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'kinopub' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/kinopub.txt | sed 's/\/32//g' > /tmp/kinopub-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/kinopub.txt > /tmp/kinopub-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee kinopub/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee kinopub/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/kinopub-ipv4.txt | uniq >> kinopub/ipv4.acl 30 | #sort -h /tmp/kinopub-ipv6.txt | uniq >> kinopub/ipv6.acl 31 | -------------------------------------------------------------------------------- /kinopub/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.182.228.0/22 4 | 5.188.172.0/22 5 | 5.188.180.0/22 6 | 5.42.206.0/24 7 | 5.44.249.0/24 8 | 31.222.226.0/24 9 | 31.40.216.0/22 10 | 45.135.120.0/22 11 | 45.141.8.0/22 12 | 45.150.232.0/22 13 | 62.122.187.0/24 14 | 77.72.16.0/21 15 | 88.210.36.0/22 16 | 88.218.240.0/22 17 | 89.208.114.0/24 18 | 89.34.238.0/24 19 | 89.36.160.0/22 20 | 89.40.226.0/24 21 | 91.192.80.0/22 22 | 91.201.64.0/22 23 | 91.237.37.0/24 24 | 92.119.88.0/22 25 | 93.189.56.0/21 26 | 94.241.128.0/22 27 | 94.241.184.0/22 28 | 95.174.68.0/22 29 | 103.111.112.0/22 30 | 103.253.36.0/23 31 | 103.82.100.0/23 32 | 103.97.88.0/22 33 | 109.122.200.0/21 34 | 146.19.196.0/24 35 | 158.255.76.0/24 36 | 176.97.192.0/24 37 | 178.253.48.0/22 38 | 178.253.8.0/22 39 | 185.110.216.0/23 40 | 185.117.117.0/24 41 | 185.120.136.0/22 42 | 185.131.64.0/22 43 | 185.135.84.0/22 44 | 185.140.12.0/22 45 | 185.140.208.0/22 46 | 185.147.53.0/24 47 | 185.224.248.0/22 48 | 185.230.245.0/24 49 | 185.232.168.0/24 50 | 185.246.152.0/22 51 | 185.35.220.0/23 52 | 185.40.5.0/24 53 | 185.6.12.0/22 54 | 193.35.224.0/24 55 | 194.53.55.0/24 56 | 194.59.142.0/24 57 | 194.59.155.0/24 58 | 194.59.46.0/24 59 | 194.59.59.0/24 60 | 195.238.124.0/22 61 | 212.23.200.0/24 62 | 213.111.128.0/20 63 | 213.183.32.0/20 64 | 213.183.48.0/22 65 | 213.183.52.0/23 66 | 213.183.54.0/24 67 | 213.183.56.0/21 68 | 213.226.68.0/22 69 | 217.30.8.0/22 70 | -------------------------------------------------------------------------------- /lifestream/README.md: -------------------------------------------------------------------------------- 1 | aka smotreshka iptv 2 | -------------------------------------------------------------------------------- /lifestream/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'lifestream' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/lifestream.txt | sed 's/\/32//g' > /tmp/lifestream-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/lifestream.txt > /tmp/lifestream-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee lifestream/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee lifestream/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/lifestream-ipv4.txt | uniq >> lifestream/ipv4.acl 30 | #sort -h /tmp/lifestream-ipv6.txt | uniq >> lifestream/ipv6.acl 31 | -------------------------------------------------------------------------------- /lifestream/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 37.18.127.0/24 4 | 185.198.112.0/22 5 | -------------------------------------------------------------------------------- /linkedin/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'linkedin' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/linkedin.txt | sed 's/\/32//g' > /tmp/linkedin-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/linkedin.txt > /tmp/linkedin-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee linkedin/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee linkedin/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/linkedin-ipv4.txt | uniq >> linkedin/ipv4.acl 30 | #sort -h /tmp/linkedin-ipv6.txt | uniq >> linkedin/ipv6.acl 31 | -------------------------------------------------------------------------------- /linkedin/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 8.18.31.0/24 4 | 8.22.120.0/23 5 | 8.22.161.0/24 6 | 8.39.53.0/24 7 | 8.8.31.0/24 8 | 45.42.64.0/22 9 | 64.152.25.0/24 10 | 64.156.4.0/22 11 | 65.156.227.0/24 12 | 70.42.142.0/24 13 | 91.225.248.0/24 14 | 103.20.92.0/22 15 | 108.174.0.0/20 16 | 144.2.0.0/19 17 | 144.2.176.0/20 18 | 144.2.192.0/19 19 | 144.2.224.0/23 20 | 144.2.226.0/24 21 | 144.2.228.0/23 22 | 144.2.230.0/24 23 | 144.2.232.0/21 24 | 185.154.80.0/22 25 | 185.63.144.0/22 26 | 199.101.160.0/22 27 | 202.4.184.0/24 28 | 209.119.43.0/24 29 | 216.200.149.0/24 30 | 216.3.18.0/24 31 | 216.52.16.0/21 32 | 216.52.242.0/24 33 | -------------------------------------------------------------------------------- /linode/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'linode' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/linode.txt | sed 's/\/32//g' > /tmp/linode-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/linode.txt > /tmp/linode-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee linode/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee linode/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/linode-ipv4.txt | uniq >> linode/ipv4.acl 30 | #sort -h /tmp/linode-ipv6.txt | uniq >> linode/ipv6.acl 31 | -------------------------------------------------------------------------------- /microsoft-all/README.md: -------------------------------------------------------------------------------- 1 | Microsoft+Azure -------------------------------------------------------------------------------- /microsoft-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'microsoft-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/microsoft-all.txt | sed 's/\/32//g' > /tmp/microsoft-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/microsoft-all.txt > /tmp/microsoft-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee microsoft-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee microsoft-all/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/microsoft-all-ipv4.txt | uniq >> microsoft-all/ipv4.acl 30 | #sort -h /tmp/microsoft-all-ipv6.txt | uniq >> microsoft-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /microsoft/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | set -x 4 | 5 | # Add domain in ACL file 6 | add_domain() { 7 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/refs/heads/main/microsoft/domain.txt > /tmp/"$1"_domain.txt 8 | dos2unix /tmp/"$1"_domain.txt 9 | #sort /tmp/"$1"_domain.txt | uniq | grep -i \. | sort | uniq | sponge /tmp/"$1"_domain.txt 10 | # Prepare domain 11 | # Delete subdomain in file 12 | cat /tmp/"$1"_domain.txt | grep -vEe '(.microsoft.com|.windowsupdate.com|.microsoft.net|.azureedge.net|.msn.com|.digicert.com|.windows.com|.akamaized.net)$' > /tmp/"$1"_domain_prepare.txt 13 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt && sleep 1s 14 | sed -i 's/^www.//g' /tmp/"$1"_domain_prepare.txt 15 | # Replace . on \. 16 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 17 | #sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 18 | #mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 19 | # ipv4 20 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 21 | # ipv6 22 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 23 | } 24 | 25 | # get CIDR from list 26 | get_prefix() { 27 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 28 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 29 | } 30 | 31 | #get_prefix 'microsoft' || echo 'failed' 32 | 33 | # save ipv4 34 | #grep -v ':' /tmp/microsoft.txt | sed 's/\/32//g' > /tmp/microsoft-ipv4.txt 35 | 36 | # save ipv6 37 | #grep ':' /tmp/microsoft.txt > /tmp/microsoft-ipv6.txt 38 | 39 | # Create/Prepare ACL List for Shadowsocks IPv4 40 | echo -e "[bypass_all]\n[proxy_list]" | tee microsoft/ipv4.acl 41 | 42 | # Create/Prepare ACL List for Shadowsocks IPv6 43 | #echo -e "[bypass_all]\n[proxy_list]" | tee microsoft/ipv6.acl 44 | 45 | add_domain 'microsoft' || echo 'failed' 46 | 47 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/refs/heads/main/microsoft/ipv4_merged.txt | sed 's/\/32//g' >> microsoft/ipv4.acl 48 | 49 | # sort & uniq 50 | #sort -h /tmp/microsoft-ipv4.txt | uniq >> microsoft/ipv4.acl 51 | #sort -h /tmp/microsoft-ipv6.txt | uniq >> microsoft/ipv6.acl 52 | -------------------------------------------------------------------------------- /mozilla/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/refs/heads/master/rule/Shadowrocket/Mozilla/Mozilla.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/refs/heads/master/data/mozilla | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'mozilla' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/mozilla.txt | sed 's/\/32//g' > /tmp/mozilla-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/mozilla.txt > /tmp/mozilla-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee mozilla/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee mozilla/ipv6.acl 46 | 47 | add_domain 'mozilla' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/mozilla-ipv4.txt | uniq >> mozilla/ipv4.acl 51 | #sort -h /tmp/mozilla-ipv6.txt | uniq >> mozilla/ipv6.acl 52 | -------------------------------------------------------------------------------- /mozilla/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)bugzilla\.org$ 4 | (?:^|\.)crates\.io$ 5 | (?:^|\.)docs\.rs$ 6 | (?:^|\.)extensionworkshop\.com$ 7 | (?:^|\.)firefox\.com$ 8 | (?:^|\.)firefox\.com\.cn$ 9 | (?:^|\.)firefoxusercontent\.com$ 10 | (?:^|\.)getpocket\.com$ 11 | (?:^|\.)location\.services\.mozilla\.com$ 12 | (?:^|\.)mdn\.mozillademos\.org$ 13 | (?:^|\.)media\.prod\.mdn\.mozit\.cloud$ 14 | (?:^|\.)mofoprod\.net$ 15 | (?:^|\.)mozgcp\.net$ 16 | (?:^|\.)mozilla\.com$ 17 | (?:^|\.)mozilla\.community$ 18 | (?:^|\.)mozilla\.net$ 19 | (?:^|\.)mozilla\.org$ 20 | (?:^|\.)pocket-image-cache\.com$ 21 | (?:^|\.)push\.services\.mozilla\.com$ 22 | (?:^|\.)rust-lang\.org$ 23 | (?:^|\.)rustup\.rs$ 24 | (?:^|\.)seamonkey-project\.org$ 25 | (?:^|\.)sentry\.prod\.mozaws\.net$ 26 | (?:^|\.)thunderbird\.net$ 27 | -------------------------------------------------------------------------------- /mts-all/README.md: -------------------------------------------------------------------------------- 1 | MTS+MTS Cloud -------------------------------------------------------------------------------- /mts-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_smart.txt > /tmp/"$1".txt 11 | #curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'mts-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/mts-all.txt | sed 's/\/32//g' > /tmp/mts-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/mts-all.txt > /tmp/mts-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee mts-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee mts-all/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/mts-all-ipv4.txt | uniq >> mts-all/ipv4.acl 30 | #sort -h /tmp/mts-all-ipv6.txt | uniq >> mts-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /mts-all/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 2.59.80.0/22 4 | 5.144.64.0/18 5 | 5.189.208.0/21 6 | 5.227.0.0/16 7 | 31.128.61.0/24 8 | 31.131.92.0/22 9 | 31.15.80.0/20 10 | 31.29.128.0/17 11 | 31.40.112.0/20 12 | 37.190.0.0/17 13 | 37.208.96.0/19 14 | 37.230.157.0/24 15 | 37.72.64.0/19 16 | 45.151.228.0/22 17 | 46.138.0.0/16 18 | 46.148.240.0/20 19 | 46.175.200.0/21 20 | 46.20.176.0/20 21 | 46.232.160.0/21 22 | 46.250.64.0/19 23 | 62.105.32.0/19 24 | 62.112.96.0/19 25 | 62.113.64.0/19 26 | 62.118.0.0/16 27 | 62.152.64.0/19 28 | 62.168.224.0/19 29 | 62.182.136.0/21 30 | 62.220.32.0/19 31 | 62.5.128.0/17 32 | 77.105.176.0/20 33 | 77.220.32.0/19 34 | 77.239.192.0/19 35 | 77.43.128.0/17 36 | 77.66.128.0/17 37 | 77.93.120.0/22 38 | 78.108.64.0/20 39 | 78.109.32.0/20 40 | 78.153.0.0/19 41 | 79.139.128.0/17 42 | 79.143.0.0/20 43 | 79.143.224.0/20 44 | 79.171.115.0/24 45 | 80.255.16.0/20 46 | 80.255.176.0/20 47 | 80.71.160.0/19 48 | 80.80.96.0/19 49 | 80.83.224.0/20 50 | 81.1.128.0/18 51 | 81.177.72.0/21 52 | 81.195.0.0/16 53 | 81.201.30.0/23 54 | 81.23.160.0/20 55 | 81.91.32.0/19 56 | 82.96.192.0/18 57 | 83.237.0.0/16 58 | 83.242.128.0/17 59 | 84.17.0.0/19 60 | 84.17.240.0/20 61 | 85.140.0.0/16 62 | 85.141.0.0/16 63 | 85.158.48.0/21 64 | 85.234.32.0/19 65 | 85.235.160.0/19 66 | 85.235.32.0/19 67 | 89.106.192.0/21 68 | 89.107.192.0/21 69 | 89.169.80.0/20 70 | 89.175.0.0/16 71 | 89.22.160.0/19 72 | 89.251.96.0/20 73 | 91.135.208.0/20 74 | 91.143.48.0/20 75 | 91.185.64.0/19 76 | 91.195.210.0/23 77 | 91.202.84.0/22 78 | 91.207.84.0/24 79 | 91.208.20.0/24 80 | 91.211.124.0/22 81 | 91.211.28.0/22 82 | 91.213.169.0/24 83 | 91.214.96.0/22 84 | 91.220.218.0/24 85 | 91.223.226.0/24 86 | 91.236.183.0/24 87 | 91.76.0.0/16 88 | 91.77.0.0/16 89 | 91.78.0.0/16 90 | 91.79.0.0/16 91 | 92.246.192.0/19 92 | 92.39.208.0/20 93 | 92.39.64.0/20 94 | 92.43.184.0/21 95 | 93.187.176.0/21 96 | 93.189.72.0/21 97 | 93.90.224.0/20 98 | 94.102.176.0/20 99 | 94.125.240.0/21 100 | 94.138.152.0/21 101 | 94.139.96.0/19 102 | 94.140.128.0/19 103 | 94.199.72.0/21 104 | 94.229.224.0/20 105 | 94.243.0.0/18 106 | 94.29.0.0/17 107 | 94.45.0.0/19 108 | 94.72.0.0/18 109 | 94.77.128.0/18 110 | 95.104.128.0/17 111 | 95.139.0.0/17 112 | 95.153.128.0/17 113 | 95.165.0.0/16 114 | 95.169.128.0/19 115 | 95.215.12.0/22 116 | 95.215.248.0/22 117 | 95.64.128.0/17 118 | 109.111.0.0/19 119 | 109.196.16.0/20 120 | 109.196.192.0/20 121 | 109.198.0.0/16 122 | 109.236.96.0/20 123 | 109.252.0.0/16 124 | 109.68.112.0/21 125 | 109.95.160.0/21 126 | 128.0.128.0/20 127 | 141.105.24.0/21 128 | 158.255.128.0/18 129 | 171.25.184.0/21 130 | 176.109.64.0/19 131 | 176.118.0.0/19 132 | 176.222.16.0/23 133 | 176.222.192.0/20 134 | 176.241.96.0/21 135 | 176.65.96.0/19 136 | 178.141.0.0/16 137 | 178.155.0.0/17 138 | 178.159.16.0/20 139 | 178.170.246.0/24 140 | 178.17.176.0/20 141 | 178.216.216.0/21 142 | 178.217.40.0/21 143 | 178.218.96.0/20 144 | 178.236.16.0/20 145 | 178.72.64.0/18 146 | 185.103.26.0/23 147 | 185.106.40.0/22 148 | 185.138.204.0/22 149 | 185.168.236.0/22 150 | 185.190.164.0/22 151 | 185.2.124.0/22 152 | 185.212.0.0/22 153 | 185.224.96.0/22 154 | 185.226.244.0/22 155 | 185.242.16.0/22 156 | 185.35.192.0/22 157 | 185.59.136.0/22 158 | 188.191.80.0/20 159 | 188.93.48.0/21 160 | 192.162.0.0/22 161 | 193.104.128.0/24 162 | 193.104.27.0/24 163 | 193.169.36.0/23 164 | 193.189.68.0/23 165 | 193.194.100.0/23 166 | 193.22.148.0/22 167 | 193.228.164.0/22 168 | 193.27.230.0/23 169 | 193.32.196.0/23 170 | 193.8.208.0/22 171 | 194.113.236.0/23 172 | 194.126.203.0/24 173 | 194.135.0.0/16 174 | 194.150.88.0/22 175 | 194.165.20.0/23 176 | 194.33.81.0/24 177 | 195.122.224.0/19 178 | 195.191.192.0/23 179 | 195.200.216.0/24 180 | 195.222.128.0/19 181 | 195.226.203.0/24 182 | 195.248.94.0/24 183 | 195.34.0.0/18 184 | 195.42.64.0/19 185 | 195.62.54.0/23 186 | 195.7.160.0/19 187 | 195.85.238.0/24 188 | 195.9.0.0/16 189 | 195.96.84.0/22 190 | 212.109.192.0/19 191 | 212.188.0.0/17 192 | 212.30.128.0/18 193 | 212.48.32.0/19 194 | 212.74.192.0/19 195 | 212.77.128.0/19 196 | 213.108.128.0/21 197 | 213.147.32.0/19 198 | 213.176.224.0/19 199 | 213.27.0.0/17 200 | 213.87.0.0/16 201 | 217.112.16.0/20 202 | 217.173.16.0/20 203 | 217.26.0.0/20 204 | 217.66.144.0/20 205 | 217.69.192.0/19 206 | 217.74.240.0/20 207 | 217.8.224.0/20 208 | -------------------------------------------------------------------------------- /mts/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'mts' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/mts.txt | sed 's/\/32//g' > /tmp/mts-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/mts.txt > /tmp/mts-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee mts/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee mts/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/mts-ipv4.txt | uniq >> mts/ipv4.acl 30 | #sort -h /tmp/mts-ipv6.txt | uniq >> mts/ipv6.acl 31 | -------------------------------------------------------------------------------- /mts/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 2.59.80.0/22 4 | 5.144.64.0/20 5 | 5.144.96.0/19 6 | 5.189.208.0/21 7 | 5.227.0.0/16 8 | 31.128.61.0/24 9 | 31.131.92.0/22 10 | 31.15.80.0/20 11 | 31.29.128.0/17 12 | 31.40.112.0/20 13 | 37.190.0.0/17 14 | 37.208.120.0/21 15 | 37.208.96.0/21 16 | 37.230.157.0/24 17 | 37.72.64.0/19 18 | 45.151.228.0/22 19 | 46.138.0.0/16 20 | 46.148.240.0/20 21 | 46.175.200.0/21 22 | 46.20.176.0/20 23 | 46.232.160.0/21 24 | 46.250.64.0/19 25 | 62.105.44.0/22 26 | 62.105.48.0/20 27 | 62.112.96.0/19 28 | 62.113.84.0/23 29 | 62.113.87.0/24 30 | 62.113.88.0/24 31 | 62.118.0.0/16 32 | 62.152.64.0/19 33 | 62.168.224.0/19 34 | 62.182.136.0/21 35 | 62.220.32.0/19 36 | 62.5.128.0/17 37 | 77.220.32.0/19 38 | 77.239.192.0/19 39 | 77.43.128.0/17 40 | 77.66.128.0/17 41 | 77.93.120.0/22 42 | 78.108.64.0/20 43 | 78.109.32.0/20 44 | 78.153.0.0/19 45 | 79.139.128.0/17 46 | 79.143.0.0/20 47 | 79.143.224.0/20 48 | 79.171.115.0/24 49 | 80.255.16.0/20 50 | 80.255.176.0/20 51 | 80.71.160.0/19 52 | 80.80.96.0/19 53 | 80.83.224.0/20 54 | 81.1.128.0/18 55 | 81.177.72.0/21 56 | 81.195.0.0/16 57 | 81.201.30.0/23 58 | 81.23.160.0/20 59 | 81.91.32.0/19 60 | 82.96.192.0/18 61 | 83.237.0.0/16 62 | 83.242.128.0/17 63 | 84.17.0.0/19 64 | 84.17.240.0/20 65 | 85.140.0.0/15 66 | 85.158.48.0/21 67 | 85.234.32.0/19 68 | 85.235.160.0/19 69 | 85.235.32.0/19 70 | 89.106.192.0/21 71 | 89.107.192.0/21 72 | 89.169.80.0/20 73 | 89.175.0.0/16 74 | 89.22.160.0/22 75 | 89.22.172.0/23 76 | 89.22.178.0/23 77 | 89.22.180.0/22 78 | 89.22.184.0/21 79 | 89.251.96.0/20 80 | 91.135.212.0/22 81 | 91.135.216.0/21 82 | 91.143.48.0/20 83 | 91.185.64.0/19 84 | 91.195.210.0/23 85 | 91.202.84.0/22 86 | 91.207.84.0/24 87 | 91.208.20.0/24 88 | 91.211.124.0/22 89 | 91.211.28.0/22 90 | 91.213.169.0/24 91 | 91.214.96.0/22 92 | 91.220.218.0/24 93 | 91.223.226.0/24 94 | 91.236.183.0/24 95 | 91.76.0.0/14 96 | 92.246.192.0/19 97 | 92.39.208.0/20 98 | 92.39.64.0/20 99 | 92.43.184.0/21 100 | 93.187.176.0/21 101 | 93.189.72.0/21 102 | 93.90.224.0/20 103 | 94.102.176.0/20 104 | 94.125.240.0/21 105 | 94.138.152.0/21 106 | 94.139.96.0/19 107 | 94.140.128.0/19 108 | 94.199.72.0/21 109 | 94.229.224.0/20 110 | 94.243.0.0/18 111 | 94.29.0.0/17 112 | 94.45.0.0/19 113 | 94.72.0.0/18 114 | 94.77.128.0/18 115 | 95.104.128.0/17 116 | 95.139.0.0/17 117 | 95.153.128.0/17 118 | 95.165.0.0/16 119 | 95.169.128.0/19 120 | 95.215.12.0/22 121 | 95.215.248.0/22 122 | 95.64.128.0/17 123 | 109.111.0.0/19 124 | 109.196.16.0/20 125 | 109.196.192.0/20 126 | 109.198.160.0/19 127 | 109.198.224.0/19 128 | 109.198.64.0/19 129 | 109.236.96.0/20 130 | 109.252.0.0/16 131 | 109.68.112.0/21 132 | 109.95.160.0/21 133 | 128.0.128.0/20 134 | 141.105.24.0/21 135 | 158.255.128.0/18 136 | 171.25.184.0/22 137 | 171.25.188.0/24 138 | 176.118.16.0/20 139 | 176.118.8.0/21 140 | 176.222.16.0/23 141 | 176.222.192.0/20 142 | 176.241.96.0/21 143 | 176.65.96.0/19 144 | 178.141.0.0/16 145 | 178.155.0.0/17 146 | 178.159.16.0/20 147 | 178.170.246.0/24 148 | 178.17.176.0/20 149 | 178.216.216.0/21 150 | 178.217.40.0/21 151 | 178.218.96.0/20 152 | 178.72.64.0/18 153 | 185.103.26.0/23 154 | 185.106.40.0/22 155 | 185.138.204.0/22 156 | 185.168.236.0/22 157 | 185.190.164.0/22 158 | 185.2.124.0/22 159 | 185.212.0.0/22 160 | 185.224.96.0/22 161 | 185.226.244.0/22 162 | 185.242.16.0/22 163 | 185.35.192.0/22 164 | 185.59.137.0/24 165 | 185.59.138.0/23 166 | 188.191.80.0/20 167 | 192.162.0.0/22 168 | 193.104.128.0/24 169 | 193.104.27.0/24 170 | 193.169.36.0/23 171 | 193.189.68.0/23 172 | 193.194.100.0/23 173 | 193.22.148.0/22 174 | 193.228.164.0/22 175 | 193.27.230.0/23 176 | 193.32.196.0/23 177 | 193.8.208.0/22 178 | 194.113.236.0/23 179 | 194.126.203.0/24 180 | 194.135.108.0/22 181 | 194.135.112.0/22 182 | 194.135.120.0/22 183 | 194.135.208.0/20 184 | 194.135.224.0/20 185 | 194.135.240.0/21 186 | 194.135.40.0/22 187 | 194.135.4.0/22 188 | 194.135.52.0/22 189 | 194.135.60.0/22 190 | 194.135.64.0/21 191 | 194.135.72.0/22 192 | 194.135.8.0/21 193 | 194.135.96.0/22 194 | 194.165.20.0/23 195 | 194.33.81.0/24 196 | 195.122.224.0/19 197 | 195.191.192.0/23 198 | 195.200.216.0/24 199 | 195.222.128.0/19 200 | 195.226.203.0/24 201 | 195.248.94.0/24 202 | 195.34.0.0/18 203 | 195.42.64.0/19 204 | 195.62.54.0/23 205 | 195.7.160.0/19 206 | 195.85.238.0/24 207 | 195.9.0.0/16 208 | 195.96.84.0/22 209 | 212.109.200.0/21 210 | 212.109.208.0/21 211 | 212.188.0.0/17 212 | 212.30.128.0/18 213 | 212.48.32.0/19 214 | 212.74.192.0/19 215 | 212.77.128.0/19 216 | 213.108.128.0/23 217 | 213.108.135.0/24 218 | 213.147.32.0/19 219 | 213.176.224.0/19 220 | 213.27.0.0/17 221 | 213.87.0.0/16 222 | 217.112.16.0/20 223 | 217.173.16.0/20 224 | 217.26.0.0/20 225 | 217.66.144.0/20 226 | 217.69.192.0/19 227 | 217.74.240.0/20 228 | 217.8.224.0/20 229 | -------------------------------------------------------------------------------- /mtscloud/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'mtscloud' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/mtscloud.txt | sed 's/\/32//g' > /tmp/mtscloud-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/mtscloud.txt > /tmp/mtscloud-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee mtscloud/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee mtscloud/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/mtscloud-ipv4.txt | uniq >> mtscloud/ipv4.acl 30 | #sort -h /tmp/mtscloud-ipv6.txt | uniq >> mtscloud/ipv6.acl 31 | -------------------------------------------------------------------------------- /mtscloud/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 62.113.64.0/20 4 | 77.105.176.0/20 5 | 89.22.164.0/23 6 | 89.22.168.0/22 7 | 89.22.184.0/22 8 | 91.185.80.0/20 9 | 176.109.64.0/19 10 | 176.118.28.0/24 11 | 178.236.18.0/23 12 | 178.236.22.0/23 13 | 178.236.24.0/24 14 | 178.236.26.0/23 15 | 188.93.48.0/21 16 | 193.8.208.0/22 17 | 194.150.88.0/22 18 | 213.108.128.0/23 19 | -------------------------------------------------------------------------------- /netflix/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'netflix' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/netflix.txt | sed 's/\/32//g' > /tmp/netflix-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/netflix.txt > /tmp/netflix-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee netflix/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee netflix/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/netflix-ipv4.txt | uniq >> netflix/ipv4.acl 30 | #sort -h /tmp/netflix-ipv6.txt | uniq >> netflix/ipv6.acl 31 | -------------------------------------------------------------------------------- /netflix/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 23.246.0.0/18 4 | 37.77.184.0/21 5 | 38.72.126.0/24 6 | 45.57.0.0/17 7 | 64.120.128.0/17 8 | 66.197.128.0/17 9 | 69.53.224.0/19 10 | 108.175.32.0/20 11 | 185.2.220.0/22 12 | 185.9.188.0/22 13 | 192.173.64.0/18 14 | 198.38.96.0/19 15 | 198.45.48.0/20 16 | 207.45.72.0/22 17 | 208.75.76.0/22 18 | -------------------------------------------------------------------------------- /nintendo/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/refs/heads/master/rule/Shadowrocket/Nintendo/Nintendo.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/refs/heads/master/data/nintendo | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'nintendo' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/nintendo.txt | sed 's/\/32//g' > /tmp/nintendo-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/nintendo.txt > /tmp/nintendo-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee nintendo/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee nintendo/ipv6.acl 46 | 47 | add_domain 'nintendo' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/nintendo-ipv4.txt | uniq >> nintendo/ipv4.acl 51 | #sort -h /tmp/nintendo-ipv6.txt | uniq >> nintendo/ipv6.acl 52 | -------------------------------------------------------------------------------- /nintendo/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)100classicbooks\.com$ 4 | (?:^|\.)ac-pocketcamp\.com$ 5 | (?:^|\.)amiibo\.com$ 6 | (?:^|\.)ayudanintendo\.com$ 7 | (?:^|\.)bowsersinsidestory\.com$ 8 | (?:^|\.)dialga\.com$ 9 | (?:^|\.)diddykongracing\.com$ 10 | (?:^|\.)dkr\.com$ 11 | (?:^|\.)donkeykongcountryreturns\.com$ 12 | (?:^|\.)drmario-world\.com$ 13 | (?:^|\.)excitebots\.com$ 14 | (?:^|\.)fireemblemawakening\.com$ 15 | (?:^|\.)fire-emblem-heroes\.com$ 16 | (?:^|\.)flipnotestudio\.com$ 17 | (?:^|\.)giratina\.com$ 18 | (?:^|\.)gloryofheracles\.com$ 19 | (?:^|\.)hackyourconsole\.com$ 20 | (?:^|\.)kirbysepicyarn\.com$ 21 | (?:^|\.)kirbysuperstarultra\.com$ 22 | (?:^|\.)kyurem\.com$ 23 | (?:^|\.)legendofzelda\.cn$ 24 | (?:^|\.)legendofzelda\.com\.cn$ 25 | (?:^|\.)marioandluigidreamteam\.com$ 26 | (?:^|\.)mariobroswii\.com$ 27 | (?:^|\.)mariokart7\.com$ 28 | (?:^|\.)mariokart8\.com$ 29 | (?:^|\.)mariokart\.cn$ 30 | (?:^|\.)mariokart\.com\.cn$ 31 | (?:^|\.)mariosupersluggers\.com$ 32 | (?:^|\.)miitomo\.com$ 33 | (?:^|\.)miitomo\.com\.cn$ 34 | (?:^|\.)miiverse\.com$ 35 | (?:^|\.)nentindo\.net$ 36 | (?:^|\.)newsupermariobrosu\.com$ 37 | (?:^|\.)nintendo3ds\.com$ 38 | (?:^|\.)nintendo\.at$ 39 | (?:^|\.)nintendo\.be$ 40 | (?:^|\.)nintendo\.ch$ 41 | (?:^|\.)nintendo\.co\.jp$ 42 | (?:^|\.)nintendo\.co\.kr$ 43 | (?:^|\.)nintendo\.com$ 44 | (?:^|\.)nintendo\.com\.au$ 45 | (?:^|\.)nintendo\.com\.hk$ 46 | (?:^|\.)nintendo\.com\.pt$ 47 | (?:^|\.)nintendo\.co\.uk$ 48 | (?:^|\.)nintendo\.co\.za$ 49 | (?:^|\.)nintendo\.de$ 50 | (?:^|\.)nintendo\.dk$ 51 | (?:^|\.)nintendodsi\.com$ 52 | (?:^|\.)nintendo\.es$ 53 | (?:^|\.)nintendo\.eu$ 54 | (?:^|\.)nintendo-europe\.com$ 55 | (?:^|\.)nintendoeurope\.com$ 56 | (?:^|\.)nintendo-europe-sales\.com$ 57 | (?:^|\.)nintendo\.fi$ 58 | (?:^|\.)nintendo\.fr$ 59 | (?:^|\.)nintendo\.it$ 60 | (?:^|\.)nintendo\.jp$ 61 | (?:^|\.)nintendolabo\.cn$ 62 | (?:^|\.)nintendo\.net$ 63 | (?:^|\.)nintendonetwork\.net$ 64 | (?:^|\.)nintendo\.nl$ 65 | (?:^|\.)nintendo\.no$ 66 | (?:^|\.)nintendonyc\.com$ 67 | (?:^|\.)nintendo\.pt$ 68 | (?:^|\.)nintendo\.ru$ 69 | (?:^|\.)nintendo\.se$ 70 | (?:^|\.)nintendostore\.com$ 71 | (?:^|\.)nintendoswitch\.cn$ 72 | (?:^|\.)nintendoswitch\.com$ 73 | (?:^|\.)nintendoswitch\.com\.cn$ 74 | (?:^|\.)nintendoswitch\.net$ 75 | (?:^|\.)nintendoswitchtogether\.com$ 76 | (?:^|\.)nintendo\.tw$ 77 | (?:^|\.)nintendowifi\.net$ 78 | (?:^|\.)nintendowii\.com$ 79 | (?:^|\.)personaltrainermath\.com$ 80 | (?:^|\.)playnintendo\.com$ 81 | (?:^|\.)pokedex3d\.com$ 82 | (?:^|\.)pokemonbank\.com$ 83 | (?:^|\.)pokemonblackwhite\.com$ 84 | (?:^|\.)pokemonbw\.com$ 85 | (?:^|\.)pokemonchampionships\.com$ 86 | (?:^|\.)pokemon\.com$ 87 | (?:^|\.)pokemongoldsilver\.com$ 88 | (?:^|\.)pokemonhome\.com$ 89 | (?:^|\.)pokemonletsgoeevee\.com$ 90 | (?:^|\.)pokemonletsgopikachu\.com$ 91 | (?:^|\.)pokemon-moon\.com$ 92 | (?:^|\.)pokemonmysterydungeon\.com$ 93 | (?:^|\.)pokemonpicross\.com$ 94 | (?:^|\.)pokemonplatinum\.com$ 95 | (?:^|\.)pokemonrubysapphire\.com$ 96 | (?:^|\.)pokemon-sun\.com$ 97 | (?:^|\.)pokemon-sunmoon\.com$ 98 | (?:^|\.)pokemonsunmoon\.com$ 99 | (?:^|\.)pokemonswordshield\.com$ 100 | (?:^|\.)pokemonultrasunmoon\.com$ 101 | (?:^|\.)pokemon-unitepgame\.com$ 102 | (?:^|\.)pokemonvgc\.com$ 103 | (?:^|\.)pokemonwifi\.net$ 104 | (?:^|\.)splatoon2tournament\.com$ 105 | (?:^|\.)starfox\.com$ 106 | (?:^|\.)supermario3dworld\.com$ 107 | (?:^|\.)supermariobros\.com\.cn$ 108 | (?:^|\.)supermario\.com$ 109 | (?:^|\.)supermariogalaxy\.com$ 110 | (?:^|\.)supermariorun\.com$ 111 | (?:^|\.)superpapermario\.com$ 112 | (?:^|\.)supersmashbros\.cn$ 113 | (?:^|\.)supersmashbros\.com\.cn$ 114 | (?:^|\.)thelegendarystarfy\.com$ 115 | (?:^|\.)thewonderful101\.com$ 116 | (?:^|\.)wariolandshakeit\.com$ 117 | (?:^|\.)wariowarediy\.com$ 118 | (?:^|\.)wiifit\.com$ 119 | (?:^|\.)wiifitu\.com$ 120 | (?:^|\.)wiipartyu\.com$ 121 | (?:^|\.)wiisports\.com$ 122 | (?:^|\.)wiisportsresort\.com$ 123 | (?:^|\.)wii-u\.com$ 124 | (?:^|\.)wiiugamepad\.com$ 125 | (?:^|\.)wiivc\.net$ 126 | (?:^|\.)xenoblade\.com$ 127 | (?:^|\.)xn--mts47c3w9b1qr\.cn$ 128 | (?:^|\.)xn--mts47c3w9b1qr\.net$ 129 | (?:^|\.)yoshisnewisland\.com$ 130 | -------------------------------------------------------------------------------- /nordvpn/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'nordvpn' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/nordvpn.txt | sed 's/\/32//g' > /tmp/nordvpn-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/nordvpn.txt > /tmp/nordvpn-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee nordvpn/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee nordvpn/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/nordvpn-ipv4.txt | uniq >> nordvpn/ipv4.acl 30 | #sort -h /tmp/nordvpn-ipv6.txt | uniq >> nordvpn/ipv6.acl 31 | -------------------------------------------------------------------------------- /nvidia/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Nvidia/Nvidia.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/nvidia | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'nvidia' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/nvidia.txt | sed 's/\/32//g' > /tmp/nvidia-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/nvidia.txt > /tmp/nvidia-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee nvidia/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee nvidia/ipv6.acl 46 | 47 | add_domain 'nvidia' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/nvidia-ipv4.txt | uniq >> nvidia/ipv4.acl 51 | #sort -h /tmp/nvidia-ipv6.txt | uniq >> nvidia/ipv6.acl 52 | -------------------------------------------------------------------------------- /nvidia/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)geforce\.cn$ 4 | (?:^|\.)geforce\.co\.kr$ 5 | (?:^|\.)geforce\.com$ 6 | (?:^|\.)geforce\.com\.tw$ 7 | (?:^|\.)geforce\.co\.uk$ 8 | (?:^|\.)gputechconf\.cn$ 9 | (?:^|\.)gputechconf\.co\.kr$ 10 | (?:^|\.)gputechconf\.com$ 11 | (?:^|\.)gputechconf\.com\.au$ 12 | (?:^|\.)gputechconf\.com\.tw$ 13 | (?:^|\.)gputechconf\.eu$ 14 | (?:^|\.)gputechconf\.in$ 15 | (?:^|\.)gputechconf\.jp$ 16 | (?:^|\.)nvda\.d2\.sc\.omtrdc\.net$ 17 | (?:^|\.)nvidia\.asia$ 18 | (?:^|\.)nvidia\.at$ 19 | (?:^|\.)nvidia\.be$ 20 | (?:^|\.)nvidia\.ch$ 21 | (?:^|\.)nvidia\.cn$ 22 | (?:^|\.)nvidia\.co\.at$ 23 | (?:^|\.)nvidia\.co\.in$ 24 | (?:^|\.)nvidia\.co\.jp$ 25 | (?:^|\.)nvidia\.co\.kr$ 26 | (?:^|\.)nvidia\.com$ 27 | (?:^|\.)nvidia\.com\.au$ 28 | (?:^|\.)nvidia\.com\.br$ 29 | (?:^|\.)nvidia\.com\.mx$ 30 | (?:^|\.)nvidia\.com\.pe$ 31 | (?:^|\.)nvidia\.com\.pl$ 32 | (?:^|\.)nvidia\.com\.tr$ 33 | (?:^|\.)nvidia\.com\.tw$ 34 | (?:^|\.)nvidia\.com\.ua$ 35 | (?:^|\.)nvidia\.com\.ve$ 36 | (?:^|\.)nvidia\.co\.uk$ 37 | (?:^|\.)nvidia\.cz$ 38 | (?:^|\.)nvidia\.de$ 39 | (?:^|\.)nvidia\.dk$ 40 | (?:^|\.)nvidia\.es$ 41 | (?:^|\.)nvidia\.eu$ 42 | (?:^|\.)nvidia\.fi$ 43 | (?:^|\.)nvidiaforhp\.com$ 44 | (?:^|\.)nvidia\.fr$ 45 | (?:^|\.)nvidiagrid\.net$ 46 | (?:^|\.)nvidia\.in$ 47 | (?:^|\.)nvidia\.it$ 48 | (?:^|\.)nvidia\.jp$ 49 | (?:^|\.)nvidia\.lu$ 50 | (?:^|\.)nvidia\.mx$ 51 | (?:^|\.)nvidia\.nl$ 52 | (?:^|\.)nvidia\.no$ 53 | (?:^|\.)nvidia\.pl$ 54 | (?:^|\.)nvidia\.ro$ 55 | (?:^|\.)nvidia\.ru$ 56 | (?:^|\.)nvidia\.se$ 57 | (?:^|\.)nvidia\.tt\.omtrdc\.net$ 58 | (?:^|\.)nvidia\.tw$ 59 | (?:^|\.)shotwithgeforce\.com$ 60 | (?:^|\.)tegrazone\.co$ 61 | (?:^|\.)tegrazone\.co\.kr$ 62 | (?:^|\.)tegrazone\.com$ 63 | (?:^|\.)tegrazone\.jp$ 64 | (?:^|\.)tegrazone\.kr$ 65 | -------------------------------------------------------------------------------- /obit/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'obit' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/obit.txt | sed 's/\/32//g' > /tmp/obit-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/obit.txt > /tmp/obit-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee obit/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee obit/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/obit-ipv4.txt | uniq >> obit/ipv4.acl 30 | #sort -h /tmp/obit-ipv6.txt | uniq >> obit/ipv6.acl 31 | -------------------------------------------------------------------------------- /obit/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 37.221.200.0/23 4 | 37.221.203.0/24 5 | 37.221.204.0/23 6 | 37.221.206.0/24 7 | 37.77.129.0/24 8 | 37.77.130.0/23 9 | 37.77.132.0/22 10 | 46.229.208.0/22 11 | 46.231.208.0/21 12 | 46.34.134.0/24 13 | 46.34.136.0/21 14 | 46.34.148.0/22 15 | 62.32.64.0/21 16 | 62.32.73.0/24 17 | 62.32.74.0/23 18 | 62.32.76.0/24 19 | 62.32.79.0/24 20 | 62.32.83.0/24 21 | 62.32.88.0/22 22 | 62.32.94.0/24 23 | 79.134.192.0/19 24 | 79.142.80.0/21 25 | 79.142.88.0/22 26 | 79.142.92.0/24 27 | 80.250.80.0/24 28 | 80.250.83.0/24 29 | 80.250.87.0/24 30 | 80.250.88.0/21 31 | 80.79.64.0/21 32 | 80.79.72.0/22 33 | 80.79.76.0/24 34 | 80.79.79.0/24 35 | 85.114.0.0/19 36 | 87.236.80.0/22 37 | 87.236.84.0/23 38 | 87.249.55.0/24 39 | 89.104.115.0/24 40 | 89.104.118.0/24 41 | 89.104.97.0/24 42 | 89.169.24.0/22 43 | 89.223.1.0/24 44 | 89.223.12.0/24 45 | 91.217.184.0/24 46 | 91.229.146.0/24 47 | 91.231.213.0/24 48 | 91.90.211.0/24 49 | 92.255.40.0/23 50 | 92.255.44.0/22 51 | 92.255.51.0/24 52 | 93.188.200.0/22 53 | 93.191.58.0/24 54 | 93.191.60.0/24 55 | 93.191.63.0/24 56 | 95.161.144.0/20 57 | 95.161.160.0/20 58 | 95.161.176.0/21 59 | 95.161.188.0/22 60 | 95.161.192.0/22 61 | 95.161.200.0/21 62 | 95.161.208.0/20 63 | 95.161.228.0/22 64 | 95.161.232.0/21 65 | 139.181.32.0/24 66 | 145.255.232.0/21 67 | 149.126.16.0/21 68 | 176.100.244.0/22 69 | 176.100.248.0/22 70 | 178.16.144.0/21 71 | 178.16.152.0/22 72 | 178.16.156.0/24 73 | 178.16.158.0/23 74 | 178.170.229.0/24 75 | 185.102.8.0/22 76 | 185.119.0.0/22 77 | 185.17.84.0/22 78 | 185.171.192.0/22 79 | 185.241.176.0/22 80 | 185.7.232.0/22 81 | 185.81.220.0/22 82 | 194.50.152.0/24 83 | 217.79.0.0/20 84 | -------------------------------------------------------------------------------- /oracle/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'oracle' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/oracle.txt | sed 's/\/32//g' > /tmp/oracle-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/oracle.txt > /tmp/oracle-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee oracle/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee oracle/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/oracle-ipv4.txt | uniq >> oracle/ipv4.acl 30 | #sort -h /tmp/oracle-ipv6.txt | uniq >> oracle/ipv6.acl 31 | -------------------------------------------------------------------------------- /ovh/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'ovh' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/ovh.txt | sed 's/\/32//g' > /tmp/ovh-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/ovh.txt > /tmp/ovh-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee ovh/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee ovh/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/ovh-ipv4.txt | uniq >> ovh/ipv4.acl 30 | #sort -h /tmp/ovh-ipv6.txt | uniq >> ovh/ipv6.acl 31 | -------------------------------------------------------------------------------- /ozonru/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'ozonru' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/ozonru.txt | sed 's/\/32//g' > /tmp/ozonru-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/ozonru.txt > /tmp/ozonru-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee ozonru/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee ozonru/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/ozonru-ipv4.txt | uniq >> ozonru/ipv4.acl 30 | #sort -h /tmp/ozonru-ipv6.txt | uniq >> ozonru/ipv6.acl 31 | -------------------------------------------------------------------------------- /ozonru/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 46.226.122.0/24 4 | 91.212.64.0/24 5 | 91.223.93.0/24 6 | 185.73.192.0/22 7 | -------------------------------------------------------------------------------- /pakt/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'pakt' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/pakt.txt | sed 's/\/32//g' > /tmp/pakt-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/pakt.txt > /tmp/pakt-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee pakt/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee pakt/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/pakt-ipv4.txt | uniq >> pakt/ipv4.acl 30 | #sort -h /tmp/pakt-ipv6.txt | uniq >> pakt/ipv6.acl 31 | -------------------------------------------------------------------------------- /pakt/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.8.36.0/22 4 | 46.8.6.0/23 5 | 91.223.28.0/24 6 | 91.223.70.0/24 7 | 91.223.75.0/24 8 | 91.223.89.0/24 9 | 109.248.36.0/23 10 | 185.97.200.0/22 11 | 194.37.1.0/24 12 | 194.37.254.0/24 13 | 194.39.101.0/24 14 | 194.39.99.0/24 15 | 217.78.230.0/24 16 | -------------------------------------------------------------------------------- /playstation/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/refs/heads/master/rule/Shadowrocket/PlayStation/PlayStation.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/refs/heads/master/data/playstation | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | dos2unix /tmp/"$1"_domain.txt 12 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 13 | # Prepare domain 14 | # Delete subdomain in file 15 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 16 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 17 | # Replace . on \. 18 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 19 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 20 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 21 | # ipv4 22 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 23 | # ipv6 24 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 25 | } 26 | 27 | # get CIDR from list 28 | get_prefix() { 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 31 | } 32 | 33 | #get_prefix 'playstation' || echo 'failed' 34 | 35 | # save ipv4 36 | #grep -v ':' /tmp/playstation.txt | sed 's/\/32//g' > /tmp/playstation-ipv4.txt 37 | 38 | # save ipv6 39 | #grep ':' /tmp/playstation.txt > /tmp/playstation-ipv6.txt 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv4 42 | echo -e "[bypass_all]\n[proxy_list]" | tee playstation/ipv4.acl 43 | 44 | # Create/Prepare ACL List for Shadowsocks IPv6 45 | #echo -e "[bypass_all]\n[proxy_list]" | tee playstation/ipv6.acl 46 | 47 | add_domain 'playstation' || echo 'failed' 48 | 49 | # sort & uniq 50 | #sort -h /tmp/playstation-ipv4.txt | uniq >> playstation/ipv4.acl 51 | #sort -h /tmp/playstation-ipv6.txt | uniq >> playstation/ipv6.acl 52 | -------------------------------------------------------------------------------- /playstation/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)playstation$ 4 | (?:^|\.)playstation\.com$ 5 | (?:^|\.)playstation\.net$ 6 | (?:^|\.)playstationnetwork\.com$ 7 | (?:^|\.)sonyentertainmentnetwork\.com$ 8 | -------------------------------------------------------------------------------- /protonvpn/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'protonvpn' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/protonvpn.txt | sed 's/\/32//g' > /tmp/protonvpn-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/protonvpn.txt > /tmp/protonvpn-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee protonvpn/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee protonvpn/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/protonvpn-ipv4.txt | uniq >> protonvpn/ipv4.acl 30 | #sort -h /tmp/protonvpn-ipv6.txt | uniq >> protonvpn/ipv6.acl 31 | -------------------------------------------------------------------------------- /python/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/Python/Python.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/python | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/python-community | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' >> /tmp/"$1"_domain.txt 12 | dos2unix /tmp/"$1"_domain.txt 13 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 14 | # Prepare domain 15 | # Delete subdomain in file 16 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 17 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 18 | # Replace . on \. 19 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 20 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 21 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 22 | # ipv4 23 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 24 | # ipv6 25 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 26 | } 27 | 28 | # get CIDR from list 29 | get_prefix() { 30 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 31 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 32 | } 33 | 34 | #get_prefix 'python' || echo 'failed' 35 | 36 | # save ipv4 37 | #grep -v ':' /tmp/python.txt | sed 's/\/32//g' > /tmp/python-ipv4.txt 38 | 39 | # save ipv6 40 | #grep ':' /tmp/python.txt > /tmp/python-ipv6.txt 41 | 42 | # Create/Prepare ACL List for Shadowsocks IPv4 43 | echo -e "[bypass_all]\n[proxy_list]" | tee python/ipv4.acl 44 | 45 | # Create/Prepare ACL List for Shadowsocks IPv6 46 | #echo -e "[bypass_all]\n[proxy_list]" | tee python/ipv6.acl 47 | 48 | add_domain 'python' || echo 'failed' 49 | 50 | # sort & uniq 51 | #sort -h /tmp/python-ipv4.txt | uniq >> python/ipv4.acl 52 | #sort -h /tmp/python-ipv6.txt | uniq >> python/ipv6.acl 53 | -------------------------------------------------------------------------------- /python/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)piwheels\.org$ 4 | (?:^|\.)pycon\.org$ 5 | (?:^|\.)pypa\.io$ 6 | (?:^|\.)pypi\.io$ 7 | (?:^|\.)pypi\.org$ 8 | (?:^|\.)pythonhosted\.org$ 9 | (?:^|\.)python\.org$ 10 | -------------------------------------------------------------------------------- /qrator/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'qrator' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/qrator.txt | sed 's/\/32//g' > /tmp/qrator-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/qrator.txt > /tmp/qrator-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee qrator/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee qrator/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/qrator-ipv4.txt | uniq >> qrator/ipv4.acl 30 | #sort -h /tmp/qrator-ipv6.txt | uniq >> qrator/ipv6.acl 31 | -------------------------------------------------------------------------------- /qrator/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 178.248.232.0/21 4 | 185.65.148.0/22 5 | 185.94.108.0/22 6 | -------------------------------------------------------------------------------- /rambler/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'rambler' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/rambler.txt | sed 's/\/32//g' > /tmp/rambler-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/rambler.txt > /tmp/rambler-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee rambler/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee rambler/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/rambler-ipv4.txt | uniq >> rambler/ipv4.acl 30 | #sort -h /tmp/rambler-ipv6.txt | uniq >> rambler/ipv6.acl 31 | -------------------------------------------------------------------------------- /rambler/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 81.19.64.0/19 4 | 85.202.240.0/20 5 | 91.192.148.0/22 6 | 91.220.133.0/24 7 | 185.110.56.0/22 8 | 195.114.104.0/23 9 | -------------------------------------------------------------------------------- /redhat/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'redhat' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/redhat.txt | sed 's/\/32//g' > /tmp/redhat-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/redhat.txt > /tmp/redhat-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee redhat/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee redhat/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/redhat-ipv4.txt | uniq >> redhat/ipv4.acl 30 | #sort -h /tmp/redhat-ipv6.txt | uniq >> redhat/ipv6.acl 31 | -------------------------------------------------------------------------------- /redhat/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 38.145.32.0/19 4 | 209.132.176.0/20 5 | -------------------------------------------------------------------------------- /rezka/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'rezka' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/rezka.txt | sed 's/\/32//g' > /tmp/rezka-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/rezka.txt > /tmp/rezka-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee rezka/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee rezka/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/rezka-ipv4.txt | uniq >> rezka/ipv4.acl 30 | #sort -h /tmp/rezka-ipv6.txt | uniq >> rezka/ipv6.acl 31 | -------------------------------------------------------------------------------- /rezka/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 2.58.20.0/22 4 | 5.253.18.0/23 5 | 37.220.32.0/21 6 | 45.10.116.0/22 7 | 45.12.4.0/23 8 | 45.12.6.0/24 9 | 45.129.176.0/22 10 | 45.145.252.0/22 11 | 45.82.44.0/22 12 | 45.88.16.0/22 13 | 45.92.156.0/24 14 | 45.93.32.0/22 15 | 46.182.104.0/21 16 | 62.197.128.0/19 17 | 84.239.45.0/24 18 | 146.255.208.0/20 19 | 154.84.1.0/24 20 | 176.58.38.0/23 21 | 176.58.40.0/21 22 | 176.58.48.0/21 23 | 176.58.56.0/23 24 | 185.106.240.0/22 25 | 185.162.184.0/22 26 | 185.188.124.0/22 27 | 185.190.190.0/23 28 | 185.195.169.0/24 29 | 185.214.10.0/24 30 | 185.217.171.0/24 31 | 185.38.12.0/22 32 | 185.40.154.0/23 33 | 185.56.81.0/24 34 | 188.215.229.0/24 35 | 193.104.186.0/24 36 | 193.238.45.0/24 37 | 212.124.96.0/21 38 | 213.170.133.0/24 39 | 217.26.112.0/20 40 | -------------------------------------------------------------------------------- /roblox/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'roblox' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/roblox.txt | sed 's/\/32//g' > /tmp/roblox-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/roblox.txt > /tmp/roblox-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee roblox/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee roblox/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/roblox-ipv4.txt | uniq >> roblox/ipv4.acl 30 | #sort -h /tmp/roblox-ipv6.txt | uniq >> roblox/ipv6.acl 31 | -------------------------------------------------------------------------------- /roblox/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 103.140.28.0/23 4 | 128.116.0.0/17 5 | 141.193.3.0/24 6 | 205.201.62.0/24 7 | -------------------------------------------------------------------------------- /rostelecom/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'rostelecom' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/rostelecom.txt | sed 's/\/32//g' > /tmp/rostelecom-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/rostelecom.txt > /tmp/rostelecom-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee rostelecom/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee rostelecom/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/rostelecom-ipv4.txt | uniq >> rostelecom/ipv4.acl 30 | #sort -h /tmp/rostelecom-ipv6.txt | uniq >> rostelecom/ipv6.acl 31 | -------------------------------------------------------------------------------- /ruby/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/ruby | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Delete subdomain in file 14 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 15 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 16 | # Replace . on \. 17 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 18 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 19 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 20 | # ipv4 21 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 22 | # ipv6 23 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 24 | } 25 | 26 | # get CIDR from list 27 | get_prefix() { 28 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 30 | } 31 | 32 | #get_prefix 'ruby' || echo 'failed' 33 | 34 | # save ipv4 35 | #grep -v ':' /tmp/ruby.txt | sed 's/\/32//g' > /tmp/ruby-ipv4.txt 36 | 37 | # save ipv6 38 | #grep ':' /tmp/ruby.txt > /tmp/ruby-ipv6.txt 39 | 40 | # Create/Prepare ACL List for Shadowsocks IPv4 41 | echo -e "[bypass_all]\n[proxy_list]" | tee ruby/ipv4.acl 42 | 43 | # Create/Prepare ACL List for Shadowsocks IPv6 44 | #echo -e "[bypass_all]\n[proxy_list]" | tee ruby/ipv6.acl 45 | 46 | add_domain 'ruby' || echo 'failed' 47 | 48 | # sort & uniq 49 | #sort -h /tmp/ruby-ipv4.txt | uniq >> ruby/ipv4.acl 50 | #sort -h /tmp/ruby-ipv6.txt | uniq >> ruby/ipv6.acl 51 | -------------------------------------------------------------------------------- /ruby/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)rubygems\.org$ 4 | (?:^|\.)ruby-lang\.org$ 5 | -------------------------------------------------------------------------------- /rugov/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'rugov' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/rugov.txt | sed 's/\/32//g' > /tmp/rugov-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/rugov.txt > /tmp/rugov-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee rugov/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee rugov/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/rugov-ipv4.txt | uniq >> rugov/ipv4.acl 30 | #sort -h /tmp/rugov-ipv6.txt | uniq >> rugov/ipv6.acl 31 | -------------------------------------------------------------------------------- /rust/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/v2fly/domain-list-community/master/data/rust | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed 's/full://g' | sed '/IP-CIDR/d' | sed '/@/d' | sed '/:/d' > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Delete subdomain in file 14 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 15 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 16 | # Replace . on \. 17 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 18 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 19 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 20 | # ipv4 21 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 22 | # ipv6 23 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 24 | } 25 | 26 | # get CIDR from list 27 | get_prefix() { 28 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 30 | } 31 | 32 | #get_prefix 'rust' || echo 'failed' 33 | 34 | # save ipv4 35 | #grep -v ':' /tmp/rust.txt | sed 's/\/32//g' > /tmp/rust-ipv4.txt 36 | 37 | # save ipv6 38 | #grep ':' /tmp/rust.txt > /tmp/rust-ipv6.txt 39 | 40 | # Create/Prepare ACL List for Shadowsocks IPv4 41 | echo -e "[bypass_all]\n[proxy_list]" | tee rust/ipv4.acl 42 | 43 | # Create/Prepare ACL List for Shadowsocks IPv6 44 | #echo -e "[bypass_all]\n[proxy_list]" | tee rust/ipv6.acl 45 | 46 | add_domain 'rust' || echo 'failed' 47 | 48 | # sort & uniq 49 | #sort -h /tmp/rust-ipv4.txt | uniq >> rust/ipv4.acl 50 | #sort -h /tmp/rust-ipv6.txt | uniq >> rust/ipv6.acl 51 | -------------------------------------------------------------------------------- /rust/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)crates\.io$ 4 | (?:^|\.)docs\.rs$ 5 | (?:^|\.)rust-lang\.org$ 6 | (?:^|\.)rustup\.rs$ 7 | -------------------------------------------------------------------------------- /spotify/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/spotify/domains.txt > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Delete subdomain in file 14 | cat /tmp/"$1"_domain.txt | grep -vEe '(.scdn.co|.spotifycdn.com|.spotify.com)$' > /tmp/"$1"_domain_prepare.txt 15 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 16 | # Replace . on \. 17 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 18 | # ipv4 19 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 20 | # ipv6 21 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 22 | } 23 | 24 | # get CIDR from list 25 | get_prefix() { 26 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 27 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 28 | } 29 | 30 | #get_prefix 'spotify' || echo 'failed' 31 | 32 | # save ipv4 33 | #grep -v ':' /tmp/spotify.txt | sed 's/\/32//g' > /tmp/spotify-ipv4.txt 34 | 35 | # save ipv6 36 | #grep ':' /tmp/spotify.txt > /tmp/spotify-ipv6.txt 37 | 38 | # Create/Prepare ACL List for Shadowsocks IPv4 39 | echo -e "[bypass_all]\n[proxy_list]" | tee spotify/ipv4.acl 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv6 42 | #echo -e "[bypass_all]\n[proxy_list]" | tee spotify/ipv6.acl 43 | 44 | add_domain 'spotify' || echo 'failed' 45 | 46 | # sort & uniq 47 | #sort -h /tmp/spotify-ipv4.txt | uniq >> spotify/ipv4.acl 48 | #sort -h /tmp/spotify-ipv6.txt | uniq >> spotify/ipv6.acl 49 | -------------------------------------------------------------------------------- /spotify/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)api2\.branch\.io$ 4 | (?:^|\.)audio4-ak-spotify-com\.akamaized\.net$ 5 | (?:^|\.)audio-ak-spotify-com\.akamaized\.net$ 6 | (?:^|\.)cdn\.cookielaw\.org$ 7 | (?:^|\.)cdn-spotify-experiments\.conductrics\.com$ 8 | (?:^|\.)heads4-ak-spotify-com\.akamaized\.net$ 9 | (?:^|\.)heads-ak-spotify-com\.akamaized\.net$ 10 | (?:^|\.)scdn\.co$ 11 | (?:^|\.)sentry\.io$ 12 | (?:^|\.)spoti\.fi$ 13 | (?:^|\.)spotifycdn\.com$ 14 | (?:^|\.)spotifycdn\.net$ 15 | (?:^|\.)spotifycharts\.com$ 16 | (?:^|\.)spotifycodes\.com$ 17 | (?:^|\.)spotify\.com$ 18 | (?:^|\.)spotify\.com\.edgesuite\.net$ 19 | (?:^|\.)spotify\.design$ 20 | (?:^|\.)spotify-everywhere\.com$ 21 | (?:^|\.)spotifyforbrands\.com$ 22 | (?:^|\.)spotifyjobs\.com$ 23 | (?:^|\.)spotify\.map\.fastlylb\.net$ 24 | (?:^|\.)spotify\.map\.fastly\.net$ 25 | (?:^|\.)video-akpcw-cdn-spotify-com\.akamaized\.net$ 26 | -------------------------------------------------------------------------------- /steam/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | set -x 5 | 6 | # Add domain in ACL file 7 | add_domain() { 8 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/refs/heads/main/steam/domain.txt > /tmp/"$1"_domain.txt 9 | echo "steamserver.net 10 | steampowered.com 11 | steamcontent.com 12 | b.akamai.net 13 | steamstatic.com" >> /tmp/"$1"_domain.txt 14 | dos2unix /tmp/"$1"_domain.txt 15 | sed -i 's/^www.//g' /tmp/"$1"_domain.txt 16 | sort /tmp/"$1"_domain.txt | uniq | grep -i \. | sort | uniq | sponge /tmp/"$1"_domain.txt 17 | # Prepare domain 18 | # Delete subdomain in file 19 | cat /tmp/"$1"_domain.txt | grep -vEe '(.steampowered.com|.steamserver.net|.dscb.akamai.net|.fastly.steamstatic.com|.ipv6check.akadns.net|.akamai.steamstatic.com|.steamcontent.com|.b.akamai.net|.steamstatic.com)$' > /tmp/"$1"_domain_prepare.txt 20 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 21 | # Replace . on \. 22 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 23 | #sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 24 | #mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 25 | # ipv4 26 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 27 | # ipv6 28 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 29 | } 30 | 31 | # get CIDR from list 32 | get_prefix() { 33 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 34 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 35 | } 36 | 37 | #get_prefix 'steam' || echo 'failed' 38 | 39 | # save ipv4 40 | #grep -v ':' /tmp/steam.txt | sed 's/\/32//g' > /tmp/steam-ipv4.txt 41 | 42 | # save ipv6 43 | #grep ':' /tmp/steam.txt > /tmp/steam-ipv6.txt 44 | 45 | # Create/Prepare ACL List for Shadowsocks IPv4 46 | echo -e "[bypass_all]\n[proxy_list]" | tee steam/ipv4.acl 47 | 48 | # Create/Prepare ACL List for Shadowsocks IPv6 49 | #echo -e "[bypass_all]\n[proxy_list]" | tee steam/ipv6.acl 50 | 51 | add_domain 'steam' || echo 'failed' 52 | 53 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/refs/heads/main/steam/ipv4_merged.txt | sed 's/\/32//g' >> steam/ipv4.acl 54 | 55 | # sort & uniq 56 | #sort -h /tmp/steam-ipv4.txt | uniq >> steam/ipv4.acl 57 | #sort -h /tmp/steam-ipv6.txt | uniq >> steam/ipv6.acl 58 | -------------------------------------------------------------------------------- /steam/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)a1338\.dscw27\.akamai\.net$ 4 | (?:^|\.)avatars\.cdn\.queniuqe\.com\.w\.alikunlun\.com$ 5 | (?:^|\.)avatars\.st\.dl\.eccdnx\.com$ 6 | (?:^|\.)b\.akamai\.net$ 7 | (?:^|\.)r5\.sn-x2pm-f5fs\.gvt1\.com$ 8 | (?:^|\.)redirector\.gvt1\.com$ 9 | (?:^|\.)steamcdn-a\.akamaihd\.net$ 10 | (?:^|\.)steam-chat\.com$ 11 | (?:^|\.)steamcloud-eu-ams\.storage\.googleapis\.com$ 12 | (?:^|\.)steamcloud-eu-fra\.storage\.googleapis\.com$ 13 | (?:^|\.)steamcommunity-a\.akamaihd\.net$ 14 | (?:^|\.)steamcommunity\.com$ 15 | (?:^|\.)steamcontent\.com$ 16 | (?:^|\.)steammobile\.akamaized\.net$ 17 | (?:^|\.)steampowered\.com$ 18 | (?:^|\.)steamserver\.net$ 19 | (?:^|\.)steamstatic\.com$ 20 | (?:^|\.)steamuserimages-a\.akamaihd\.net$ 21 | (?:^|\.)t\.sni\.global\.fastly\.net$ 22 | 23.213.69.74 23 | 23.214.233.226 24 | 23.215.0.133 25 | 23.215.0.136 26 | 23.215.0.141 27 | 23.215.0.14 28 | 23.215.0.145 29 | 23.215.0.16 30 | 23.215.0.229 31 | 23.215.0.236/31 32 | 23.215.0.238 33 | 23.215.0.241 34 | 23.53.35.229 35 | 23.53.35.230/31 36 | 23.53.35.232/30 37 | 23.53.35.236 38 | 23.53.35.238/31 39 | 23.53.35.241 40 | 23.54.127.73 41 | 23.54.127.74 42 | 23.54.127.79 43 | 23.54.127.80 44 | 23.56.8.80 45 | 39.173.184.31 46 | 45.121.184.0/22 47 | 63.150.138.0/24 48 | 64.233.180.207 49 | 101.226.27.72/29 50 | 103.10.124.0/23 51 | 103.28.54.0/23 52 | 104.18.38.239 53 | 104.18.42.105 54 | 142.250.31.207 55 | 142.251.111.207 56 | 142.251.16.207 57 | 142.251.163.207 58 | 142.251.167.207 59 | 142.251.179.207 60 | 146.66.152.0/21 61 | 153.254.86.0/24 62 | 155.133.224.0/19 63 | 162.254.192.0/21 64 | 172.253.115.100/31 65 | 172.253.115.102 66 | 172.253.115.113 67 | 172.253.115.138/31 68 | 172.253.115.207 69 | 172.253.122.207 70 | 172.253.62.207 71 | 172.253.63.207 72 | 172.64.145.151 73 | 172.64.149.17 74 | 185.225.248.16 75 | 185.25.180.0/22 76 | 190.216.121.0/24 77 | 190.217.33.0/24 78 | 192.178.155.207 79 | 192.178.218.207 80 | 192.69.96.0/22 81 | 204.63.214.0/23 82 | 205.196.6.0/24 83 | 208.64.200.0/22 84 | 208.78.164.0/22 85 | -------------------------------------------------------------------------------- /sublimetext/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/SublimeText/SublimeText.list | sed 's/ //g' | sed -r '/^\s*$/d' | sed '/!/d' | sed '/!!/d' | sed '/#/d' | sed 's/DOMAIN-SUFFIX,//g' | sed 's/^https\?:\/\///g' | sed '/IP-CIDR/d' | sed '/@/d' | sed 's/full://g' | sed '/:/d' | sed 's/DOMAIN,//g' | sed '/DOMAIN-KEYWORD/d' > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Delete subdomain in file 14 | #cat /tmp/"$1"_domain.txt | grep -vEe '(.openai.com|.openai.org|.openai.com.cdn.cloudflare.net|.oaistatic.com)$' > /tmp/"$1"_domain_prepare.txt 15 | #sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 16 | # Replace . on \. 17 | #sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 18 | sed -i 's/\./\\./g' /tmp/"$1"_domain.txt 19 | mv -f /tmp/"$1"_domain.txt /tmp/"$1"_domain_prepare.txt 20 | # ipv4 21 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 22 | # ipv6 23 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 24 | } 25 | 26 | # get CIDR from list 27 | get_prefix() { 28 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 29 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 30 | } 31 | 32 | #get_prefix 'sublimetext' || echo 'failed' 33 | 34 | # save ipv4 35 | #grep -v ':' /tmp/sublimetext.txt | sed 's/\/32//g' > /tmp/sublimetext-ipv4.txt 36 | 37 | # save ipv6 38 | #grep ':' /tmp/sublimetext.txt > /tmp/sublimetext-ipv6.txt 39 | 40 | # Create/Prepare ACL List for Shadowsocks IPv4 41 | echo -e "[bypass_all]\n[proxy_list]" | tee sublimetext/ipv4.acl 42 | 43 | # Create/Prepare ACL List for Shadowsocks IPv6 44 | #echo -e "[bypass_all]\n[proxy_list]" | tee sublimetext/ipv6.acl 45 | 46 | add_domain 'sublimetext' || echo 'failed' 47 | 48 | # sort & uniq 49 | #sort -h /tmp/sublimetext-ipv4.txt | uniq >> sublimetext/ipv4.acl 50 | #sort -h /tmp/sublimetext-ipv6.txt | uniq >> sublimetext/ipv6.acl 51 | -------------------------------------------------------------------------------- /sublimetext/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)packagecontrol\.io$ 4 | (?:^|\.)sublimehq\.com$ 5 | (?:^|\.)sublimemerge\.com$ 6 | (?:^|\.)sublimetext\.com$ 7 | -------------------------------------------------------------------------------- /surfshark/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'surfshark' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/surfshark.txt | sed 's/\/32//g' > /tmp/surfshark-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/surfshark.txt > /tmp/surfshark-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee surfshark/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee surfshark/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/surfshark-ipv4.txt | uniq >> surfshark/ipv4.acl 30 | #sort -h /tmp/surfshark-ipv6.txt | uniq >> surfshark/ipv6.acl 31 | -------------------------------------------------------------------------------- /suse/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'suse' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/suse.txt | sed 's/\/32//g' > /tmp/suse-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/suse.txt > /tmp/suse-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee suse/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee suse/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/suse-ipv4.txt | uniq >> suse/ipv4.acl 30 | #sort -h /tmp/suse-ipv6.txt | uniq >> suse/ipv6.acl 31 | -------------------------------------------------------------------------------- /suse/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 91.193.113.0/24 4 | 195.135.220.0/24 5 | 195.135.222.0/23 6 | -------------------------------------------------------------------------------- /telegram/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'telegram' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/telegram.txt | sed 's/\/32//g' > /tmp/telegram-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/telegram.txt > /tmp/telegram-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee telegram/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee telegram/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/telegram-ipv4.txt | uniq >> telegram/ipv4.acl 30 | #sort -h /tmp/telegram-ipv6.txt | uniq >> telegram/ipv6.acl 31 | -------------------------------------------------------------------------------- /telegram/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 91.105.192.0/23 4 | 91.108.16.0/21 5 | 91.108.36.0/22 6 | 91.108.4.0/22 7 | 91.108.56.0/22 8 | 91.108.8.0/21 9 | 95.161.64.0/20 10 | 95.161.80.0/24 11 | 95.161.84.0/22 12 | 149.154.160.0/20 13 | 185.76.151.0/24 14 | -------------------------------------------------------------------------------- /tencent/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'tencent' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/tencent.txt | sed 's/\/32//g' > /tmp/tencent-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/tencent.txt > /tmp/tencent-ipv6.txt 21 | 22 | # Create/Prepare ACL List for TenCent IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee tencent/ipv4.acl 24 | 25 | # Create/Prepare ACL List for TenCent IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee tencent/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/tencent-ipv4.txt | uniq >> tencent/ipv4.acl 30 | #sort -h /tmp/tencent-ipv6.txt | uniq >> tencent/ipv6.acl 31 | -------------------------------------------------------------------------------- /tencent/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 1.12.0.0/20 4 | 1.12.34.0/23 5 | 1.201.184.0/22 6 | 1.201.188.0/23 7 | 43.128.0.0/13 8 | 43.137.0.0/16 9 | 43.138.0.0/15 10 | 43.140.0.0/15 11 | 43.142.0.0/16 12 | 43.152.0.0/13 13 | 43.160.0.0/12 14 | 45.113.68.0/22 15 | 45.146.112.0/23 16 | 45.40.192.0/19 17 | 49.51.0.0/16 18 | 62.62.84.0/22 19 | 101.32.0.0/16 20 | 101.33.0.0/17 21 | 101.33.128.0/18 22 | 103.16.136.0/24 23 | 103.238.16.0/23 24 | 103.52.216.0/22 25 | 103.7.28.0/22 26 | 113.59.232.0/24 27 | 119.28.0.0/16 28 | 119.29.29.0/24 29 | 120.53.52.0/23 30 | 120.88.56.0/23 31 | 121.4.4.0/22 32 | 124.156.0.0/16 33 | 129.226.0.0/16 34 | 150.109.0.0/16 35 | 156.240.88.0/22 36 | 162.14.0.0/18 37 | 162.62.0.0/16 38 | 170.106.0.0/16 39 | 182.254.0.0/16 40 | 203.195.128.0/17 41 | 203.205.128.0/17 42 | 210.171.232.0/21 43 | 210.180.74.0/23 44 | 211.152.128.0/19 45 | 211.159.96.0/19 46 | 211.56.92.0/22 47 | -------------------------------------------------------------------------------- /tiktok/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'tiktok' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/tiktok.txt | sed 's/\/32//g' > /tmp/tiktok-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/tiktok.txt > /tmp/tiktok-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee tiktok/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee tiktok/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/tiktok-ipv4.txt | uniq >> tiktok/ipv4.acl 30 | #sort -h /tmp/tiktok-ipv6.txt | uniq >> tiktok/ipv6.acl 31 | -------------------------------------------------------------------------------- /tor/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/tor/domains.txt > /tmp/"$1"_domain.txt 10 | dos2unix /tmp/"$1"_domain.txt 11 | sort /tmp/"$1"_domain.txt | uniq | sed 's/^www.//g' | sponge /tmp/"$1"_domain.txt 12 | # Prepare domain 13 | # Delete subdomain in file 14 | cat /tmp/"$1"_domain.txt | grep -vEe '(.torproject.org)$' > /tmp/"$1"_domain_prepare.txt 15 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sponge /tmp/"$1"_domain_prepare.txt 16 | # Replace . on \. 17 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 18 | # ipv4 19 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 20 | # ipv6 21 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 22 | } 23 | 24 | # get CIDR from list 25 | get_prefix() { 26 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 27 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 28 | } 29 | 30 | get_prefix 'tor' || echo 'failed' 31 | 32 | # save ipv4 33 | grep -v ':' /tmp/tor.txt | sed 's/\/32//g' > /tmp/tor-ipv4.txt 34 | 35 | # save ipv6 36 | #grep ':' /tmp/tor.txt > /tmp/tor-ipv6.txt 37 | 38 | # Create/Prepare ACL List for Shadowsocks IPv4 39 | echo -e "[bypass_all]\n[proxy_list]" | tee tor/ipv4.acl 40 | 41 | # Create/Prepare ACL List for Shadowsocks IPv6 42 | #echo -e "[bypass_all]\n[proxy_list]" | tee tor/ipv6.acl 43 | 44 | add_domain 'tor' || echo 'failed' 45 | 46 | # sort & uniq 47 | sort -h /tmp/tor-ipv4.txt | uniq >> tor/ipv4.acl 48 | #sort -h /tmp/tor-ipv6.txt | uniq >> tor/ipv6.acl 49 | -------------------------------------------------------------------------------- /tor/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)torproject\.org$ 4 | 49.12.57.131 5 | 49.12.57.132/31 6 | 49.12.57.134 7 | 49.12.57.140 8 | 49.12.57.145 9 | 49.12.57.146/31 10 | 49.12.57.148 11 | 89.47.184.176 12 | 95.216.163.36 13 | 116.202.120.165 14 | 116.202.120.166 15 | 116.202.120.173 16 | 116.202.120.174/31 17 | 116.202.120.181 18 | 116.202.120.183 19 | 116.202.120.184 20 | 116.202.120.187 21 | 116.203.55.206 22 | 151.101.0.70 23 | 151.101.128.70 24 | 151.101.192.70 25 | 151.101.64.70 26 | 159.69.63.226 27 | 195.201.139.202 28 | 204.8.99.100 29 | 204.8.99.112/31 30 | 204.8.99.129 31 | 204.8.99.130 32 | 204.8.99.132 33 | 204.8.99.134/31 34 | 204.8.99.136 35 | 204.8.99.138/31 36 | 204.8.99.142 37 | 204.8.99.144 38 | 204.8.99.146 39 | 204.8.99.148/31 40 | 204.8.99.150 41 | 204.8.99.152 42 | 204.8.99.154/31 43 | 204.8.99.156/31 44 | -------------------------------------------------------------------------------- /twitter/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'twitter' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/twitter.txt | sed 's/\/32//g' > /tmp/twitter-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/twitter.txt > /tmp/twitter-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee twitter/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee twitter/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/twitter-ipv4.txt | uniq >> twitter/ipv4.acl 30 | #sort -h /tmp/twitter-ipv6.txt | uniq >> twitter/ipv6.acl 31 | -------------------------------------------------------------------------------- /twitter/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 8.25.194.0/23 4 | 8.25.196.0/23 5 | 64.63.0.0/18 6 | 69.12.56.0/21 7 | 69.195.160.0/19 8 | 74.126.14.128/25 9 | 103.252.112.0/22 10 | 104.244.40.0/21 11 | 185.45.4.0/22 12 | 188.64.224.0/21 13 | 192.133.76.0/22 14 | 192.44.68.0/23 15 | 192.48.236.0/23 16 | 199.16.156.0/22 17 | 199.59.148.0/22 18 | 199.96.56.0/21 19 | 202.160.128.0/22 20 | 209.237.192.0/19 21 | -------------------------------------------------------------------------------- /ufanet/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'ufanet' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/ufanet.txt | sed 's/\/32//g' > /tmp/ufanet-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/ufanet.txt > /tmp/ufanet-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee ufanet/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee ufanet/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/ufanet-ipv4.txt | uniq >> ufanet/ipv4.acl 30 | #sort -h /tmp/ufanet-ipv6.txt | uniq >> ufanet/ipv6.acl 31 | -------------------------------------------------------------------------------- /ufanet/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 46.191.128.0/17 4 | 77.79.128.0/18 5 | 79.140.16.0/20 6 | 79.174.32.0/19 7 | 81.30.176.0/20 8 | 81.30.192.0/19 9 | 84.39.240.0/20 10 | 89.189.128.0/19 11 | 92.50.128.0/18 12 | 93.157.248.0/21 13 | 94.41.0.0/16 14 | 95.105.0.0/17 15 | 136.169.128.0/17 16 | 145.255.0.0/19 17 | 171.25.177.0/24 18 | 178.214.224.0/19 19 | 185.1.0.0/24 20 | 185.162.32.0/22 21 | 185.44.8.0/22 22 | 188.191.112.0/20 23 | 193.104.64.0/24 24 | 195.226.209.0/24 25 | 213.5.104.0/21 26 | -------------------------------------------------------------------------------- /valve/ipv4.acl: -------------------------------------------------------------------------------- 1 | ../steam/ipv4.acl -------------------------------------------------------------------------------- /vkontakte/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'vkontakte' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/vkontakte.txt | sed 's/\/32//g' > /tmp/vkontakte-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/vkontakte.txt > /tmp/vkontakte-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee vkontakte/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee vkontakte/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/vkontakte-ipv4.txt | uniq >> vkontakte/ipv4.acl 30 | #sort -h /tmp/vkontakte-ipv6.txt | uniq >> vkontakte/ipv6.acl 31 | -------------------------------------------------------------------------------- /vkontakte/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.101.40.0/22 4 | 5.181.60.0/22 5 | 5.188.140.0/22 6 | 5.61.16.0/21 7 | 5.61.232.0/21 8 | 37.139.32.0/22 9 | 37.139.40.0/22 10 | 45.136.20.0/22 11 | 45.84.128.0/22 12 | 46.245.234.0/24 13 | 62.217.160.0/20 14 | 79.137.132.0/24 15 | 79.137.139.0/24 16 | 79.137.140.0/24 17 | 79.137.157.0/24 18 | 79.137.164.0/23 19 | 79.137.167.0/24 20 | 79.137.174.0/23 21 | 79.137.180.0/24 22 | 79.137.183.0/24 23 | 79.137.240.0/21 24 | 83.166.232.0/21 25 | 83.166.248.0/21 26 | 83.217.216.0/22 27 | 83.222.28.0/22 28 | 84.23.52.0/22 29 | 85.192.32.0/22 30 | 85.198.106.0/23 31 | 87.239.104.0/21 32 | 87.240.128.0/18 33 | 87.242.112.0/22 34 | 89.208.196.0/22 35 | 89.208.208.0/22 36 | 89.208.216.0/21 37 | 89.208.228.0/22 38 | 89.208.84.0/22 39 | 89.221.228.0/22 40 | 89.221.232.0/21 41 | 90.156.148.0/22 42 | 90.156.212.0/22 43 | 90.156.216.0/22 44 | 90.156.232.0/21 45 | 90.156.248.0/22 46 | 91.219.224.0/22 47 | 91.231.132.0/22 48 | 93.183.84.0/22 49 | 93.186.224.0/20 50 | 94.100.176.0/20 51 | 94.139.244.0/22 52 | 95.142.192.0/20 53 | 95.163.180.0/22 54 | 95.163.208.0/21 55 | 95.163.216.0/22 56 | 95.163.248.0/21 57 | 95.163.32.0/19 58 | 95.213.0.0/17 59 | 109.120.180.0/22 60 | 109.120.188.0/22 61 | 128.140.168.0/21 62 | 146.185.208.0/22 63 | 146.185.240.0/22 64 | 176.112.168.0/21 65 | 176.123.176.0/22 66 | 178.22.88.0/21 67 | 178.237.16.0/20 68 | 185.100.104.0/22 69 | 185.130.112.0/22 70 | 185.131.68.0/22 71 | 185.16.148.0/22 72 | 185.16.244.0/22 73 | 185.16.8.0/22 74 | 185.180.200.0/22 75 | 185.187.63.0/24 76 | 185.226.52.0/22 77 | 185.241.192.0/22 78 | 185.32.248.0/22 79 | 185.47.167.0/24 80 | 185.5.136.0/22 81 | 185.6.244.0/22 82 | 185.86.144.0/22 83 | 188.93.56.0/21 84 | 193.203.40.0/22 85 | 194.31.156.0/22 86 | 195.211.20.0/22 87 | 212.111.84.0/22 88 | 212.233.120.0/22 89 | 212.233.72.0/21 90 | 212.233.88.0/21 91 | 212.233.96.0/22 92 | 213.219.212.0/22 93 | 217.16.16.0/20 94 | 217.174.188.0/22 95 | 217.20.144.0/20 96 | 217.69.128.0/20 97 | -------------------------------------------------------------------------------- /vpnhosts/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'vpnhosts' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/vpnhosts.txt | sed 's/\/32//g' > /tmp/vpnhosts-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/vpnhosts.txt > /tmp/vpnhosts-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee vpnhosts/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee vpnhosts/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/vpnhosts-ipv4.txt | uniq >> vpnhosts/ipv4.acl 30 | #sort -h /tmp/vpnhosts-ipv6.txt | uniq >> vpnhosts/ipv6.acl 31 | -------------------------------------------------------------------------------- /yandex-all/README.md: -------------------------------------------------------------------------------- 1 | Yandex+Yandex Cloud -------------------------------------------------------------------------------- /yandex-all/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'yandex-all' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/yandex-all.txt | sed 's/\/32//g' > /tmp/yandex-all-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/yandex-all.txt > /tmp/yandex-all-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee yandex-all/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee yandex-all/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/yandex-all-ipv4.txt | uniq >> yandex-all/ipv4.acl 30 | #sort -h /tmp/yandex-all-ipv6.txt | uniq >> yandex-all/ipv6.acl 31 | -------------------------------------------------------------------------------- /yandex/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'yandex' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/yandex.txt | sed 's/\/32//g' > /tmp/yandex-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/yandex.txt > /tmp/yandex-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee yandex/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee yandex/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/yandex-ipv4.txt | uniq >> yandex/ipv4.acl 30 | #sort -h /tmp/yandex-ipv6.txt | uniq >> yandex/ipv6.acl 31 | -------------------------------------------------------------------------------- /yandex/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 5.255.192.0/18 4 | 5.45.192.0/18 5 | 37.140.128.0/18 6 | 37.9.64.0/18 7 | 77.88.0.0/18 8 | 84.252.160.0/19 9 | 87.250.224.0/19 10 | 90.156.176.0/24 11 | 90.156.179.0/24 12 | 90.156.180.0/23 13 | 90.156.183.0/24 14 | 90.156.184.0/23 15 | 90.156.186.0/24 16 | 92.255.112.0/20 17 | 93.158.128.0/18 18 | 95.108.128.0/17 19 | 141.8.128.0/18 20 | 178.154.128.0/18 21 | 178.154.192.0/19 22 | 185.32.186.0/23 23 | 213.180.192.0/19 24 | -------------------------------------------------------------------------------- /yandexcloud/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'yandexcloud' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/yandexcloud.txt | sed 's/\/32//g' > /tmp/yandexcloud-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/yandexcloud.txt > /tmp/yandexcloud-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Shadowsocks IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee yandexcloud/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Shadowsocks IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee yandexcloud/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/yandexcloud-ipv4.txt | uniq >> yandexcloud/ipv4.acl 30 | #sort -h /tmp/yandexcloud-ipv6.txt | uniq >> yandexcloud/ipv6.acl 31 | -------------------------------------------------------------------------------- /yandexcloud/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | 31.44.8.0/21 4 | 37.230.172.0/22 5 | 37.230.188.0/22 6 | 45.133.96.0/22 7 | 46.21.244.0/22 8 | 51.250.0.0/17 9 | 62.84.112.0/20 10 | 84.201.128.0/18 11 | 84.252.128.0/20 12 | 89.169.128.0/18 13 | 89.223.20.0/24 14 | 89.223.9.0/24 15 | 89.232.188.0/22 16 | 91.107.80.0/22 17 | 92.255.1.0/24 18 | 92.255.3.0/24 19 | 93.77.160.0/19 20 | 94.126.204.0/22 21 | 94.139.248.0/22 22 | 130.193.32.0/19 23 | 158.160.0.0/16 24 | 178.154.192.0/18 25 | 178.170.222.0/24 26 | 185.206.164.0/22 27 | 185.32.184.0/23 28 | 188.72.103.0/24 29 | 188.72.104.0/23 30 | 193.32.216.0/22 31 | 213.165.192.0/19 32 | 217.28.224.0/20 33 | -------------------------------------------------------------------------------- /youtube/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | # Add domain in ACL file 8 | add_domain() { 9 | curl -4s --max-time 30 --retry-delay 3 --retry 10 https://raw.githubusercontent.com/antonme/ipnames/refs/heads/master/dns-youtube.txt > /tmp/"$1"_domain.txt || echo "YouTube: Getting domain failed" 10 | curl -4s --max-time 30 --retry-delay 3 --retry 10 https://raw.githubusercontent.com/bol-van/zapret-win-bundle/refs/heads/master/zapret-winws/files/list-youtube.txt >> /tmp/"$1"_domain.txt || echo "YouTube: Getting domain 2 failed" 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/antonme/ipnames/master/ext-dns-youtube.txt >> /tmp/"$1"_domain.txt 12 | 13 | echo "img.youtube.com 14 | ggpht.com 15 | ytimg.com 16 | youtu.be 17 | youtubei.googleapis.com 18 | googleusercontent.com 19 | yt3.ggpht.com 20 | googlevideo.com 21 | gstatic.com 22 | googleapis.com 23 | googleusercontent.com 24 | youtube.com 25 | sponsor.ajay.app 26 | sponsorblock.hankmccord.dev 27 | returnyoutubedislike.com 28 | returnyoutubedislikeapi.com" >> /tmp/"$1"_domain.txt 29 | dos2unix /tmp/"$1"_domain.txt 30 | sort /tmp/"$1"_domain.txt | uniq | sponge /tmp/"$1"_domain.txt 31 | # Prepare domain 32 | # Delete subdomain in file 33 | cat /tmp/"$1"_domain.txt | grep -vEe '(.googlevideo.com|.youtube.com|.ytimg.com|.google.com|.withgoogle.com|.googleusercontent.com|.metric.gstatic.com|.googleapis.com|.ggpht.com)$' > /tmp/"$1"_domain_prepare.txt 34 | sort -h /tmp/"$1"_domain_prepare.txt | uniq | sed '/kellykawase/d' | sed '/hatenablog.co/d' | sed '/blogspot/d' | sed '/githubusercontent/d' | sed '/appspot/d' | sed '/kilatiron/d' | sed '/.ru$/d' | sed '/.co$/d' | sed '/.download$/d' | sed '/.yolasite.com$/d' | sed '/.youtube$/d' | sed '/.info$/d' | sed '/.me$/d' | sed '/.be$/d' | sed '/.net$/d' | sed '/.io$/d' | sed '/.ua$/d' | sed '/.cn$/d' | sort | sponge /tmp/"$1"_domain_prepare.txt 35 | sed -i 's/^www.//g' /tmp/"$1"_domain_prepare.txt 36 | # Replace . on \. 37 | sed -i 's/\./\\./g' /tmp/"$1"_domain_prepare.txt 38 | # ipv4 39 | for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv4.acl; done 40 | # ipv6 41 | #for domain in $(cat /tmp/${1}_domain_prepare.txt); do echo \(\?\:\^\|\\\.\)${domain}$ >> ${1}/ipv6.acl; done 42 | } 43 | 44 | # get CIDR from list 45 | get_prefix() { 46 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 47 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 48 | } 49 | 50 | #get_prefix 'youtube' || echo 'failed' 51 | 52 | # save ipv4 53 | #grep -v ':' /tmp/youtube.txt | sed 's/\/32//g' > /tmp/youtube-ipv4.txt 54 | 55 | # save ipv6 56 | #grep ':' /tmp/youtube.txt > /tmp/youtube-ipv6.txt 57 | 58 | # Create/Prepare ACL List for Shadowsocks IPv4 59 | echo -e "[bypass_all]\n[proxy_list]" | tee youtube/ipv4.acl 60 | 61 | # Create/Prepare ACL List for Shadowsocks IPv6 62 | #echo -e "[bypass_all]\n[proxy_list]" | tee youtube/ipv6.acl 63 | 64 | add_domain 'youtube' || echo 'failed' 65 | 66 | # sort & uniq 67 | #sort -h /tmp/youtube-ipv4.txt | uniq >> youtube/ipv4.acl 68 | #sort -h /tmp/youtube-ipv6.txt | uniq >> youtube/ipv6.acl 69 | -------------------------------------------------------------------------------- /youtube/ipv4.acl: -------------------------------------------------------------------------------- 1 | [bypass_all] 2 | [proxy_list] 3 | (?:^|\.)de\.youtube\.wikia\.com$ 4 | (?:^|\.)es\.youtube\.wikia\.com$ 5 | (?:^|\.)fr\.youtube\.wikia\.com$ 6 | (?:^|\.)ggpht\.com$ 7 | (?:^|\.)googleapis\.com$ 8 | (?:^|\.)googleusercontent\.com$ 9 | (?:^|\.)googlevideo\.com$ 10 | (?:^|\.)gstatic\.com$ 11 | (?:^|\.)returnyoutubedislikeapi\.com$ 12 | (?:^|\.)returnyoutubedislike\.com$ 13 | (?:^|\.)sponsor\.ajay\.app$ 14 | (?:^|\.)sponsorblock\.hankmccord\.dev$ 15 | (?:^|\.)video\.google\.com\.ar$ 16 | (?:^|\.)video\.google\.com\.au$ 17 | (?:^|\.)youtube-nocookie\.com$ 18 | (?:^|\.)youtube\.com$ 19 | (?:^|\.)youtube-nocookie\.com$ 20 | (?:^|\.)ytimg\.com$ 21 | -------------------------------------------------------------------------------- /zenlayer/downloader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | set -euo pipefail 5 | set -x 6 | 7 | 8 | # get CIDR from list 9 | get_prefix() { 10 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv4_merged.txt > /tmp/"$1".txt 11 | curl --max-time 30 --retry-delay 3 --retry 10 -4s -# https://raw.githubusercontent.com/$NAME_ACCOUNT_GITHUB/ipranges/main/"$1"/ipv6_merged.txt >> /tmp/"$1".txt 12 | } 13 | 14 | get_prefix 'zenlayer' || echo 'failed' 15 | 16 | # save ipv4 17 | grep -v ':' /tmp/zenlayer.txt | sed 's/\/32//g' > /tmp/zenlayer-ipv4.txt 18 | 19 | # save ipv6 20 | #grep ':' /tmp/zenlayer.txt > /tmp/zenlayer-ipv6.txt 21 | 22 | # Create/Prepare ACL List for Zenlayer IPv4 23 | echo -e "[bypass_all]\n[proxy_list]" | tee zenlayer/ipv4.acl 24 | 25 | # Create/Prepare ACL List for Zenlayer IPv6 26 | #echo -e "[bypass_all]\n[proxy_list]" | tee zenlayer/ipv6.acl 27 | 28 | # sort & uniq 29 | sort -h /tmp/zenlayer-ipv4.txt | uniq >> zenlayer/ipv4.acl 30 | #sort -h /tmp/zenlayer-ipv6.txt | uniq >> zenlayer/ipv6.acl 31 | --------------------------------------------------------------------------------