diff --git a/modules/website/cloudflare-detector.sh b/modules/website/cloudflare-detector.sh index f3b2a2a..92972d9 100755 --- a/modules/website/cloudflare-detector.sh +++ b/modules/website/cloudflare-detector.sh @@ -178,6 +178,60 @@ check_http_headers() { return 1 } +get_location_name() { + local code="$1" + + # Map IATA codes to city names + case "$code" in + # North America + ORD) echo "Chicago" ;; + LAX) echo "Los Angeles" ;; + IAD) echo "Ashburn, VA" ;; + DFW) echo "Dallas" ;; + ATL) echo "Atlanta" ;; + SEA) echo "Seattle" ;; + SJC) echo "San Jose, CA" ;; + MIA) echo "Miami" ;; + YYZ) echo "Toronto" ;; + BNA) echo "Nashville" ;; + DEN) echo "Denver" ;; + PHX) echo "Phoenix" ;; + EWR) echo "Newark, NJ" ;; + BOS) echo "Boston" ;; + + # Europe + LHR) echo "London" ;; + FRA) echo "Frankfurt" ;; + AMS) echo "Amsterdam" ;; + CDG) echo "Paris" ;; + MAD) echo "Madrid" ;; + MAN) echo "Manchester" ;; + ARN) echo "Stockholm" ;; + WAW) echo "Warsaw" ;; + VIE) echo "Vienna" ;; + + # Asia Pacific + SIN) echo "Singapore" ;; + NRT) echo "Tokyo" ;; + HKG) echo "Hong Kong" ;; + SYD) echo "Sydney" ;; + ICN) echo "Seoul" ;; + BOM) echo "Mumbai" ;; + DEL) echo "New Delhi" ;; + + # Middle East + DXB) echo "Dubai" ;; + TLV) echo "Tel Aviv" ;; + + # South America + GRU) echo "São Paulo" ;; + EZE) echo "Buenos Aires" ;; + + # If unknown, show the code + *) echo "$code" ;; + esac +} + get_cloudflare_location() { local domain="$1" @@ -193,7 +247,9 @@ get_cloudflare_location() { local colo=$(echo "$cf_ray" | awk -F'-' '{print $NF}') if [ -n "$colo" ]; then - echo "$colo" + # Return city name instead of code + local city=$(get_location_name "$colo") + echo "$city" return 0 fi