mirror of
https://github.com/benbusby/farside.git
synced 2025-03-15 03:36:33 -04:00

This is related to the previous commit, where instances can now specify a separate API url. Since users aren't visiting the API urls directly, however, they shouldn't be included in the cf proxy test.
43 lines
1.3 KiB
Bash
Executable File
43 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Remove cloudflare instances from services-full.json
|
|
|
|
rm -f out.json
|
|
file="services-full.json"
|
|
|
|
while read -r line; do
|
|
if [[ "$line" == "\"https://"* ]]; then
|
|
domain=$(echo "$line" | sed -e "s/^\"https:\/\///" -e "s/\",//" -e "s/\"//" | awk -F '|' '{print $1}')
|
|
ips=$(dig "$domain" +short || true)
|
|
cf=0
|
|
echo "$domain"
|
|
|
|
for ip in $ips
|
|
do
|
|
echo " - $ip"
|
|
resp=$(curl --connect-timeout 5 --max-time 5 -s "$ip")
|
|
|
|
# Cloudflare does not allow accessing sites using their IP,
|
|
# and returns a 1003 error code when attempting to do so. This
|
|
# allows us to check for sites using Cloudflare for proxying,
|
|
# rather than just their nameservers.
|
|
if [[ "$resp" == *"error code: 1003"* ]]; then
|
|
cf=1
|
|
echo " ! Using cloudflare proxy, skipping..."
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ $cf -eq 0 ]; then
|
|
echo "$line" >> out.json
|
|
fi
|
|
else
|
|
echo "$line" >> out.json
|
|
fi
|
|
done <$file
|
|
|
|
# Remove any trailing commas from new instance lists
|
|
sed -i -e ':begin' -e '$!N' -e 's/,\n]/\n]/g' -e 'tbegin' -e 'P' -e 'D' out.json
|
|
|
|
cat out.json | jq --indent 2 . > services.json
|
|
rm -f out.json
|