Files
ethereum-rpc-docker/utils/locate-ips.sh
2024-11-03 08:55:57 +01:00

28 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Temporary file to store results
temp_file=$(mktemp)
# Loop through each IP from stdin, fetch geolocation, and append data
while read -r ip; do
# Check if the IP is not empty
if [[ -n "$ip" ]]; then
# Fetch geolocation data
response=$(curl -s "https://ipinfo.io/$ip/json")
# Extract country code, city, and hoster (if available)
country=$(echo "$response" | jq -r '.country // "Unknown"')
city=$(echo "$response" | jq -r '.city // "Unknown"')
hoster=$(echo "$response" | jq -r '.org // "Unknown"')
# Write the IP and its details to the temp file
echo "$ip - $city, $country, $hoster" >> "$temp_file"
fi
done
# Output the results
cat "$temp_file"
# Clean up
rm -f "$temp_file"