import phonenumbers
from phonenumbers import carrier, geocoder
def check_phone_number(phone_number):
"""
Проверява държавата и града на телефонен номер
Args:
phone_number: Телефонен номер във формат +359XXXXXXXXX
"""
try:
# Парсване на номера
parsed_number = phonenumbers.parse(phone_number, None)
# Проверка дали номерът е валиден
if not phonenumbers.is_valid_number(parsed_number):
print("Невалиден телефонен номер!")
return
# Получаване на информация
location = geocoder.description_for_number(parsed_number, "bg")
operator = carrier.name_for_number(parsed_number, "bg")
country = geocoder.country_name_for_number(parsed_number, "bg")
# Извеждане на резултатите
print(f"\n{'='*50}")
print(f"Телефонен номер: {phone_number}")
print(f"{'='*50}")
print(f"Държава: {country}")
print(f"Локация/Град: {location if location else 'Няма информация'}")
print(f"Оператор: {operator if operator else 'Неизвестен'}")
print(f"{'='*50}\n")
except phonenumbers.NumberParseException:
print("Грешка при парсване на номера. Използвайте формат +359XXXXXXXXX")
# Примери за използване
if __name__ == "__main__":
# Примерни номера - замени с реални
test_numbers = [
"+359888123456", # България
"+442071234567", # Великобритания
"+12025551234", # САЩ
]
for number in test_numbers:
check_phone_number(number)
# Или въведи номер ръчно
print("Въведи телефонен номер (формат: +359XXXXXXXXX) или 'q' за изход:")
while True:
user_input = input("> ")
if user_input.lower() == 'q':
break
check_phone_number(user_input)