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).
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