在本教程中,我们将解释如何使用Python开发追踪电话号码位置的应用程序。
我们可以在Python中使用包轻松获得电话号码的详细信息。因此,在本教程中,我们将使用Python开发一个网络应用程序来跟踪电话号码的位置和相关细节。

因此,让我们继续开发使用Python追踪电话号码位置的应用程序。
应用程序的设置
我们将使用以下命令创建应用程序目录track-phone-number-python 。
$ mkdir track-phone-number-python
我们移到项目目录下。
$ cd track-phone-number-python
需要的模块
我们将使用以下模块来实现对电话号码的追踪:
- phonenumbers。这是一个Python包,可以用来获取电话号码的详细信息。你可以用下面的命令来安装它。
pip install phonenumbers
- Flask。由于我们将创建一个网络应用程序,所以我们将安装Flask来使用Python创建网络应用。你可以使用下面的命令来安装它:
pip install Flask
创建应用程序文件
现在我们将在项目的根目录下创建我们的应用程序文件app.py 。
然后我们将导入已安装的软件包flask 和phonenumbers 到我们的应用程序文件。
from flask import Flask, render_template, request, redirect, url_for
import phonenumbers
from phonenumbers import geocoder, carrier
我们将创建Flask应用程序对象并设置路由。
app = Flask(__name__)
@app.route('/')
@app.route('/trace', methods =['GET', 'POST'])
我们将创建函数trace() ,并实现通过获取表单提交后的值来追踪电话号码的功能。我们将使用parse() 函数解析电话号码,然后将解析后的电话号码传递给函数description_for_number() 函数,以获得号码详情。我们还将使用name_for_number() 函数获得服务提供商的详细信息。
phoneNumber = phonenumbers.parse(number)
phoneDetails = geocoder.description_for_number(phoneNumber, 'en')
serviceProvider = carrier.name_for_number(phoneNumber, 'en')
在得到电话号码的细节后,我们将把细节传递给模板文件trace.html ,以呈现数值。
return render_template('trace.html', mesage = mesage, phoneNumber = phoneNumber, phoneDetails = phoneDetails, serviceProvider = serviceProvider)
下面是app.py 文件的完整代码。
from flask import Flask, render_template, request, redirect, url_for
import phonenumbers
from phonenumbers import geocoder, carrier
app = Flask(__name__)
@app.route('/')
@app.route('/trace', methods =['GET', 'POST'])
def trace():
mesage = ''
phoneNumber = ''
phoneDetails = ''
serviceProvider = ''
if request.method == 'POST' and 'number' in request.form:
number = request.form['number']
if not number:
mesage = 'Please enter mobile number with country code!'
else:
phoneNumber = phonenumbers.parse(number)
phoneDetails = geocoder.description_for_number(phoneNumber,
'en')
serviceProvider = carrier.name_for_number(phoneNumber,
'en')
return render_template('trace.html', mesage = mesage, phoneNumber = phoneNumber, phoneDetails = phoneDetails, serviceProvider = serviceProvider)
if __name__ == "__main__":
app.run()
创建模板文件
我们将在项目的根目录下创建目录templates 。然后我们将创建模板文件trace.html ,并创建带有文本输入和提交按钮的html表单。
<form action="{{ url_for('trace') }}" method="post">
<div class="form-group">
<label for="email">Enter Phone Number(with country code):</label>
<input type="text" class="form-control" id="number" name="number" placeholder="+91**********" >
</div>
<button type="submit" class="btn btn-primary">Trace</button>
</form>
我们将在电话号码输入和表格提交后显示电话号码的详细信息。
{% if phoneDetails is defined and phoneDetails %}
<div class="alert alert-success">Details: {{ phoneNumber }}</div>
<div class="alert alert-success">Country : {{ phoneDetails }}</div>
<div class="alert alert-success">Service Provider : {{ serviceProvider }}</div>
{% endif %}
下面是templates/trace.html 文件的完整代码。
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Trace Phone Number Location Using Python</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<br>
<h2>Trace Phone Number Location Using Python</h2>
<br>
<form action="{{ url_for('trace') }}" method="post">
{% if mesage is defined and mesage %}
<div class="alert alert-warning">{{ mesage }}</div>
{% endif %}
{% if phoneDetails is defined and phoneDetails %}
<div class="alert alert-success">Details: {{ phoneNumber }}</div>
<div class="alert alert-success">Country : {{ phoneDetails }}</div>
<div class="alert alert-success">Service Provider : {{ serviceProvider }}</div>
{% endif %}
<div class="form-group">
<label for="email">Enter Phone Number(with country code):</label>
<input type="text" class="form-control" id="number" name="number" placeholder="+91**********" >
</div>
<button type="submit" class="btn btn-primary">Trace</button>
</form>
</div>
</body>
</html>