用python做一个查IP的网站

前言

运维时发现一个问题,局域网内有成百上千台电脑,防火墙策略根据IP调整和更新,有的人不会查自己的IP地址,有没有什么工具能帮助我让不懂电脑的人一点就知道自己的IP。

于是我想到了用python快速做一个简易查内网IP网站,用他们的电脑一访问网站就知道自己的IP地址。

效果展示

前期准备

服务器:Ubuntu 22.04

python 3

还需要pip下载Flask、request、logging、TimedRotatingFileHandler,不然运行会报错。

开始

我下面做的操作只是我个人的,你可以自定义。

  1. 创建一个project文件夹,里面包含app.py文件、logs文件夹和templates文件夹

可以忽略logs文件夹下的flask-ip.log.*的日志,也可以忽略start.sh的文件

  1. 在project文件夹下,创建一个app.py
python 复制代码
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)
  1. 创建logs文件夹和flask-ip.log文件
  2. 创建templates文件夹和index.html文件
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>

创建服务,自启动

shell 复制代码
cd /etc/systemd/system
sudo nano mymain.service
shell 复制代码
[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

最后输入命令启动

shell 复制代码
sudo systemctl start mymain.service

sudo systemctl enable mymain.service
相关推荐
你怎么知道我是队长3 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐3 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
吃茄子的猫4 小时前
quecpython中&的具体含义和使用场景
开发语言·python
じ☆冷颜〃4 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
云栖梦泽4 小时前
易语言中小微企业Windows桌面端IoT监控与控制
开发语言
数据大魔方4 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
TH_14 小时前
35、AI自动化技术与职业变革探讨
运维·人工智能·自动化
APIshop4 小时前
Python 爬虫获取 item_get_web —— 淘宝商品 SKU、详情图、券后价全流程解析
前端·爬虫·python
风送雨4 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
效率客栈老秦5 小时前
Python Trae提示词开发实战(8):数据采集与清洗一体化方案让效率提升10倍
人工智能·python·ai·提示词·trae