|
import phonenumbers |
|
from phonenumbers import geocoder, carrier, timezone |
|
|
|
def track_phone_location(phone_number): |
|
try: |
|
|
|
parsed_number = phonenumbers.parse(phone_number) |
|
|
|
|
|
country = geocoder.description_for_number(parsed_number, "en") |
|
|
|
|
|
service_provider = carrier.name_for_number(parsed_number, "en") |
|
|
|
|
|
time_zones = timezone.time_zones_for_number(parsed_number) |
|
|
|
|
|
is_valid = phonenumbers.is_valid_number(parsed_number) |
|
|
|
return { |
|
"phone_number": phone_number, |
|
"country": country, |
|
"service_provider": service_provider, |
|
"time_zones": list(time_zones), |
|
"is_valid": is_valid |
|
} |
|
|
|
except Exception as e: |
|
return { |
|
"error": str(e), |
|
"phone_number": phone_number |
|
} |
|
|
|
def main(): |
|
while True: |
|
print("\nPhone Number Location Tracker") |
|
print("----------------------------") |
|
phone_number = input("Enter phone number (with country code, e.g., +1234567890) or 'q' to quit: ") |
|
|
|
if phone_number.lower() == 'q': |
|
print("Goodbye!") |
|
break |
|
|
|
result = track_phone_location(phone_number) |
|
|
|
if "error" in result: |
|
print(f"\nError: {result['error']}") |
|
else: |
|
print("\nResults:") |
|
print(f"Phone Number: {result['phone_number']}") |
|
print(f"Country: {result['country']}") |
|
print(f"Service Provider: {result['service_provider']}") |
|
print(f"Time Zones: {', '.join(result['time_zones'])}") |
|
print(f"Valid Number: {'Yes' if result['is_valid'] else 'No'}") |
|
|
|
if __name__ == "__main__": |
|
main() |