76 lines
2.4 KiB
Bash
Executable File
76 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Enhanced Results Script - Automatic Geolocation Enhancement (Offline)
|
|
# Automatically finds the latest accessible IPs file and adds geolocation data using QQWry database
|
|
|
|
set -e
|
|
|
|
echo "🌍 BestCDN Results Enhancement Script (Offline QQWry)"
|
|
echo "===================================================="
|
|
|
|
# Find the latest cpp_accessible file
|
|
LATEST_FILE=$(find results/ -name "cpp_accessible_*.txt" -type f -printf '%T@ %p\n' 2>/dev/null | sort -n | tail -1 | cut -d' ' -f2-)
|
|
|
|
if [ -z "$LATEST_FILE" ]; then
|
|
echo "❌ No accessible results files found in results/ directory"
|
|
echo " Please run the C++ tester first: ./run_cpp.sh"
|
|
exit 1
|
|
fi
|
|
|
|
echo "📁 Found latest results file: $LATEST_FILE"
|
|
|
|
# Check if Python is available
|
|
if ! command -v python3 &> /dev/null; then
|
|
echo "❌ Python3 is required but not installed"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if offline geolocation script exists
|
|
if [ ! -f "add_geolocation_offline.py" ]; then
|
|
echo "❌ Offline geolocation script not found: add_geolocation_offline.py"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if QQWry database exists, if not it will be downloaded automatically
|
|
if [ ! -f "qqwry.dat" ]; then
|
|
echo "📥 QQWry database not found, will be downloaded automatically..."
|
|
fi
|
|
|
|
# Generate output filename
|
|
BASENAME=$(basename "$LATEST_FILE" .txt)
|
|
OUTPUT_FILE="results/${BASENAME}_geo.txt"
|
|
|
|
echo "🔍 Adding geolocation data using offline QQWry database..."
|
|
echo " Input: $LATEST_FILE"
|
|
echo " Output: $OUTPUT_FILE"
|
|
|
|
# Run the offline geolocation enhancement
|
|
python3 add_geolocation_offline.py "$LATEST_FILE" "$OUTPUT_FILE"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo ""
|
|
echo "✅ Enhancement completed successfully!"
|
|
echo "📊 Enhanced results saved to: $OUTPUT_FILE"
|
|
echo ""
|
|
echo "📈 Quick stats:"
|
|
TOTAL_IPS=$(grep -v '^#' "$OUTPUT_FILE" | grep -v '^$' | wc -l)
|
|
echo " Total enhanced IPs: $TOTAL_IPS"
|
|
|
|
# Show sample results
|
|
echo ""
|
|
echo "🔍 Sample enhanced results:"
|
|
echo " $(head -n 20 "$OUTPUT_FILE" | grep -v '^#' | head -n 5)"
|
|
if [ $TOTAL_IPS -gt 5 ]; then
|
|
echo " ... and $(($TOTAL_IPS - 5)) more"
|
|
fi
|
|
|
|
echo ""
|
|
echo "💡 Offline database advantages:"
|
|
echo " ✓ No network requests required"
|
|
echo " ✓ Ultra-fast lookups (1000+ IPs/second)"
|
|
echo " ✓ No API rate limits"
|
|
echo " ✓ Works in restricted network environments"
|
|
else
|
|
echo "❌ Enhancement failed"
|
|
exit 1
|
|
fi |