aboutsummaryrefslogtreecommitdiff
path: root/utils/icloud_private_relay_ip_addresses_download.sh
blob: 0579cc757c671aa62ec9faa7c35cb0b4f39b3f73 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

cd "$(dirname "${0}")" || exit 1

DEST=../src/lib/inc_generated/ndpi_icloud_private_relay_match.c.inc
TMP=/tmp/icloud.csv
LIST=/tmp/icloud.list
LIST_MERGED=/tmp/icloud.list_m
ORIGIN="https://mask-api.icloud.com/egress-ip-ranges.csv"


echo "(1) Downloading file... ${ORIGIN}"
http_response=$(curl -s -o "$TMP" -w "%{http_code}" ${ORIGIN})
if [ "$http_response" != "200" ]; then
    echo "Error $http_response: you probably need to update the list url!"
    exit 1
fi

echo "(2) Processing IP addresses..."

# Note: the "grep -v :" is used to skip IPv6 addresses
cut -d ',' -f 1 $TMP | grep -v ':' > $LIST
./mergeipaddrlist.py $LIST > $LIST_MERGED
./ipaddr2list.py $LIST_MERGED NDPI_ANONYMOUS_SUBSCRIBER > $DEST
rm -f $TMP $LIST $LIST_MERGED

echo "(3) iCloud Private Relay IPs are available in $DEST"
exit 0