运维过程中,经常要从一堆文本中提取出ip地址,因此用flask web框架写了个从一堆文本中提取出ip地址,一个ip地址一行的程序。这里前端使用的是bootstrap前端框架。
如下所示(输入一系列文本,会从文本中提取出ip地址):
请输入文本的位置我输入:test192.168.0.2test192.168.0.3test192.168.0.4,得到的结果将会是
后端处理代码如下:
#从文件中提取ip地址
@app.route('/get_ip_address', methods=['GET', 'POST'])
def get_ip_address():
ips = []
if request.method == 'POST':
iptext = request.form['iptext']
if iptext:
p = re.compile(r'(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)')
ips = p.findall(iptext)
return render_template('get_ip_address.html', ips=ips)
前端页面的代码如下:
<form role="form" class="form" method="post" action="/get_ip_address">
<textarea class="form-control" rows="3" name="iptext" placeholder="请输入文本(此程序从文本中提取ip地址)"></textarea>
<button type="submit" class="btn btn-default">提取ip地址</button>
</form>
{% if ips %}
{% for ip in ips %}
{{ ip }}<br/>
{% endfor %}
{% endif %}
处理过程如下:
前端有个页面让用户提交任何的文本,提交到后端使用iptext = request.form['iptext']进行接收提交的文本数据,使用正则把文本中的所有ip进行提取p = re.compile(r'(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)'),提取后会生成列表。前端如果发现有列表的话,就给予显示。
最后附上本人的网络课堂地址,如有兴趣请点击: 实践哥