• 用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
    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文件
    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
    
  • 相关阅读:
    王道机试C++第 5 章 数据结构二:队列queue和21年蓝桥杯省赛选择题Day32
    Metabase学习教程:入门-2
    12 | 使用 Spark SQL执行CURL
    传统 Web 框架部署与迁移
    JAVA大学生体测数据管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
    找不到x3daudio1_7.dll怎么解决?x3daudio1_7.dll的5个修复方法
    skywalking集成nacos动态配置
    Jenkins nginx自动化构建前端vue项目
    瑞芯微rk356x板子快速上手
    Redis Lua Java 随机编号 用户编号
  • 原文地址:https://blog.csdn.net/qq_37278418/article/details/143303917