前言
运维时发现一个问题,局域网内有成百上千台电脑,防火墙策略根据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查询网站的文章就介绍到这了,更多相关python ip查询内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论