Wednesday, 22 October 2025

#15 Locate your phone number

Flask: Locate Phone Numbers by Region & Carrier

Build a Flask App to Locate Phone Numbers

This guide shows you how to create a Python Flask web tool that locates phone numbers—revealing region and carrier information using the phonenumbers library.

Step 1: Install Requirements

pip install Flask phonenumbers

Step 2: Create the Flask App (app.py)

from flask import Flask, request, render_template_string
import phonenumbers
from phonenumbers import geocoder, carrier

app = Flask(__name__)

TEMPLATE = """
<!DOCTYPE html>
<html>
<head>
    <title>Phone Number Locator</title>
    <style>
        body { font-family: Arial, sans-serif; margin:40px; }
        .container { max-width: 500px; margin: auto; }
        input[type=text] { width: 80%; padding: 8px; }
        input[type=submit] { padding: 8px 16px; }
        .result { margin-top:20px; background: #f0fafc; padding: 16px; border-radius: 5px;}
    </style>
</head>
<body>
    <div class="container">
        <h2>Phone Number Locator</h2>
        <form method="post">
            <label for="phone">Enter Phone Number (with country code):</label><br><br>
            <input type="text" name="phone" placeholder="+14155552671"/><br><br>
            <input type="submit" value="Locate">
        </form>
        {% if info %}
        <div class="result">
            <b>Number:</b> {{ info['number'] }} <br>
            <b>Country/Region:</b> {{ info['region'] }} <br>
            <b>Carrier:</b> {{ info['carrier'] }} <br>
        </div>
        {% endif %}
    </div>
</body>
</html>
"""

@app.route('/', methods=['GET', 'POST'])
def locate():
    info = None
    if request.method == 'POST':
        number = request.form['phone']
        try:
            parsed = phonenumbers.parse(number, None)
            region = geocoder.description_for_number(parsed, "en")
            carrier_name = carrier.name_for_number(parsed, "en")
            info = {
                'number': number,
                'region': region if region else 'Unknown',
                'carrier': carrier_name if carrier_name else 'Unknown'
            }
        except Exception as e:
            info = {'number': number, 'region': 'Invalid number', 'carrier': 'Invalid number'}
    return render_template_string(TEMPLATE, info=info)

if __name__ == '__main__':
    app.run(debug=True)

Step 3: Run Locally

python app.py
Open http://127.0.0.1:5000/ in your browser.
Enter an international phone number (e.g., +14155552671 for US).

Features

  • Input any phone number in international format
  • Returns region/country and carrier name
  • Simple, clean HTML interface
  • Shows error for invalid phone numbers

No comments:

Post a Comment

#20b Python (run+edit in browser ^ all in one)

๐Ÿ Python Basics — 5 Interactive Modules Edit code live with syntax highlighting and click ▶ Run . Each module runs separately ...