File size: 1,470 Bytes
22e292a
26b9990
7c935ed
22e292a
7c935ed
26b9990
 
7c935ed
26b9990
 
7c935ed
 
 
 
 
 
 
 
 
 
 
 
 
26b9990
7c935ed
26b9990
7c935ed
22e292a
 
7c935ed
 
26b9990
 
7c935ed
 
 
 
 
 
22e292a
 
26b9990
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import streamlit as st
import phonenumbers
from phonenumbers import geocoder, carrier, is_valid_number

def track_phone_number_details(phone_number_str):
    try:
        phone_number = phonenumbers.parse(phone_number_str, None)

        if phonenumbers.is_valid_number(phone_number):
            location_info = geocoder.description_for_number(phone_number, "en")
            carrier_info = carrier.name_for_number(phone_number, "en")
            is_valid = "Valid" if is_valid_number(phone_number) else "Invalid"

            details = {
                "Phone Number": phone_number_str,
                "Valid": is_valid,
                "Location": location_info,
                "Carrier": carrier_info,
                "Country Code": phone_number.country_code,
                "National Number": phone_number.national_number,
            }

            return details
        else:
            return {"Error": "Invalid phone number."}
    except phonenumbers.NumberParseException:
        return {"Error": "Invalid phone number format."}

def main():
    st.title("Phone Number Details Tracker")
    st.write("Enter a phone number below to get its details:")

    phone_number_str = st.text_input("Phone Number:")

    if st.button("Get Details"):
        details = track_phone_number_details(phone_number_str)
        st.write("Details:")
        for key, value in details.items():
            st.write(f"{key}: {value}")

if __name__ == "__main__":
    main()