随着互联网的普及,IP地址查询成为了许多应用场景下的必要功能。无论是用于安全分析、地理位置定位还是网络故障排除,能够快速准确地查询IP地址信息都是非常有价值的。Python作为一种高效且易于使用的编程语言,非常适合用来构建这样的功能。本文将详细介绍如何使用Python制作一个IP地址查询网站,从基础环境搭建到高级功能实现,逐步引导你完成整个项目。
前言
运维时发现一个问题,局域网内有成百上千台电脑,防火墙策略根据IP调整和更新,有的人不会查自己的IP地址,有没有什么工具能帮助我让不懂电脑的人一点就知道自己的IP。
于是我想到了用python快速做一个简易查内网IP网站,用他们的电脑一访问网站就知道自己的IP地址。
效果展示
前期准备
服务器:Ubuntu 22.04
python 3
还需要pip下载Flask、request、logging、TimedRotatingFileHandler,不然运行会报错。
开始
我下面做的操作只是我个人的,你可以自定义。
创建一个project文件夹,里面包含app.py文件、logs文件夹和templates文件夹
可以忽略logs文件夹下的flask-ip.log.*的日志,也可以忽略start.sh的文件
在project文件夹下,创建一个app.py
from flask import Flask,request from flask import render_template import logging from logging.handlers import TimedRotatingFileHandler app= Flask(__name__) app.logger.setLevel(logging.INFO) # 日志存放,backupCount填写天数,我这边写了10 handler=TimedRotatingFileHandler('logs/flask-ip.log',when='D',interval=1,backupCount=10,encoding='UTF-8',delay=False,utc=True) handler.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) app.logger.addHandler(handler) @app.route('/') def hello_world(): user_ip=request.remote_addr app.logger.info(user_ip) return render_template('index.html',user_ip=user_ip) if __name__=='__main__': # host填写部署的那台电脑或服务器 app.run(host='192.168.1.1',port=8000)
创建logs文件夹和flask-ip.log文件
创建templates文件夹和index.html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>安全运营小组</title> </head> <body> <div class="container"> <div class="header"> <h3 class='text-muted'>你的内网IP地址是:<strong>{{user_ip}}</strong></h3> <h3 class='text-muted'>安全组放行规则需要以此IP做为源IP地址</h3> </div> <br /> <hr /> </div> </body> </html>
创建服务,自启动
cd /etc/systemd/system sudo nano mymain.service
[Unit] Description=My Python Program After=network.target [Service] ExecStart=/usr/bin/python3 /[你的路径]/project/app.py WorkingDirectory=/[你的路径]/project #StandardOutput=file:/[你的路径]/project/output.log #StandardError=file:/[你的路径]/project/error.log Restart=always User=[电脑名字,比如guest] [Install] WantedBy=default.target
最后输入命令启动
sudo systemctl start mymain.service sudo systemctl enable mymain.service
总结
本文详细介绍了如何使用Python制作一个IP地址查询网站。从环境搭建、框架选择到具体功能实现,每一步都进行了详细的讲解。通过学习本文,你不仅掌握了基本的Web开发技能,还学会了如何处理和展示IP地址信息。
我们使用了Flask框架来构建Web应用,并实现了IP地址查询的基本功能。这些技能和经验将对你的未来开发工作大有裨益。希望本文能为你提供清晰的指导,使你在Python编程和Web开发中更加得心应手。无论是初学者还是有经验的开发者,掌握这些技能都是提升编程能力的重要一步。
本文来源于#我是闲人,由@ZhanShen 整理发布。如若内容造成侵权/违法违规/事实不符,请联系本站客服处理!
该文章观点仅代表作者本人,不代表本站立场。本站不承担相关法律责任。
如若转载,请注明出处:https://www.zhanid.com/biancheng/2170.html