aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2023-06-08 16:52:55 +0200
committerGitHub <noreply@github.com>2023-06-08 16:52:55 +0200
commit3e673e91a943f88d02215cef1020983587907739 (patch)
tree0e2f4d08055c003e6273723e0b6c66f0143e13ca /utils
parent7dcceb4daf1600915cb508ba7eff872699526a93 (diff)
ProtonVPN: add basic detection (#2006)
Diffstat (limited to 'utils')
-rwxr-xr-xutils/common.sh2
-rwxr-xr-xutils/protonvpn_ip_addresses_download.sh31
-rwxr-xr-xutils/update_every_lists.sh2
3 files changed, 34 insertions, 1 deletions
diff --git a/utils/common.sh b/utils/common.sh
index 415d6fe87..67087484a 100755
--- a/utils/common.sh
+++ b/utils/common.sh
@@ -21,7 +21,7 @@ function is_file_empty()
exit 1
fi
- if [ `cat "${file}" | wc -l` -eq 0 ]; then
+ if [ `cat "${file}" | wc -c` -eq 0 ]; then
printf '%s error: %s\n' "${0}" "file ${file} empty!" >&2
exit 1
fi
diff --git a/utils/protonvpn_ip_addresses_download.sh b/utils/protonvpn_ip_addresses_download.sh
new file mode 100755
index 000000000..fef5a2167
--- /dev/null
+++ b/utils/protonvpn_ip_addresses_download.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+set -e
+
+cd "$(dirname "${0}")" || exit 1
+. ./common.sh || exit 1
+
+DEST=../src/lib/inc_generated/ndpi_protonvpn_match.c.inc
+TMP=/tmp/proton.json
+LIST=/tmp/proton.list
+LIST_MERGED=/tmp/proton.list.merged
+ORIGIN=https://api.protonmail.ch/vpn/logicals
+
+
+echo "(1) Downloading file..."
+http_response=$(curl -s -o $TMP -w "%{http_code}" ${ORIGIN})
+check_http_response "${http_response}"
+is_file_empty "${TMP}"
+
+echo "(2) Processing IP addresses..."
+#Not sure if we should use EntryIP or ExitIP: use both, for the time being and let see what happens...
+jq -r '.LogicalServers[].Servers[].EntryIP' $TMP > $LIST # TODO: ipv6
+jq -r '.LogicalServers[].Servers[].ExitIP' $TMP >> $LIST # TODO: ipv6
+is_file_empty "${LIST}"
+./mergeipaddrlist.py $LIST > $LIST_MERGED
+./ipaddr2list.py $LIST_MERGED NDPI_PROTOCOL_PROTONVPN > $DEST
+rm -f $TMP $LIST $LIST_MERGED
+is_file_empty "${DEST}"
+
+echo "(3) ProtonVPN IPs are available in $DEST"
+exit 0
diff --git a/utils/update_every_lists.sh b/utils/update_every_lists.sh
index ab35d6485..95f72476e 100755
--- a/utils/update_every_lists.sh
+++ b/utils/update_every_lists.sh
@@ -36,6 +36,8 @@ RETVAL=$(( RETVAL + $? ))
./gambling_sites_download.sh
RETVAL=$(( RETVAL + $? ))
+./protonvpn_ip_addresses_download.sh
+RETVAL=$(( RETVAL + $? ))
test ${RETVAL} -ne 0 && printf '%s: %s\n' "${0}" "${RETVAL} script(s) failed"
exit ${RETVAL}