使用Python制作一个IP地址查询网站实例详解

我是闲人 2024-10-30 22:32:06编程技术
112

随着互联网的普及,IP地址查询成为了许多应用场景下的必要功能。无论是用于安全分析、地理位置定位还是网络故障排除,能够快速准确地查询IP地址信息都是非常有价值的。Python作为一种高效且易于使用的编程语言,非常适合用来构建这样的功能。本文将详细介绍如何使用Python制作一个IP地址查询网站,从基础环境搭建到高级功能实现,逐步引导你完成整个项目。

前言

运维时发现一个问题,局域网内有成百上千台电脑,防火墙策略根据IP调整和更新,有的人不会查自己的IP地址,有没有什么工具能帮助我让不懂电脑的人一点就知道自己的IP。
于是我想到了用python快速做一个简易查内网IP网站,用他们的电脑一访问网站就知道自己的IP地址。

效果展示

使用Python制作一个IP地址查询网站实例详解

前期准备

服务器:Ubuntu 22.04

python 3

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

开始

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

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

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

使用Python制作一个IP地址查询网站实例详解

在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开发中更加得心应手。无论是初学者还是有经验的开发者,掌握这些技能都是提升编程能力的重要一步。

Python ip地址查询
THE END
ZhanShen
把烦恼扔进夕阳里,和星星一起沉沦。

相关推荐

python使用ddddocr库识别滑动验证码简单示例代码
在现代网络应用中,滑动验证码已经成为一种常见的安全措施。然而,对于自动化测试或脚本登录等场景来说,手动完成滑动验证码是非常繁琐且不切实际的。幸运的是,Python中的dd...
2024-12-01 编程技术
115

Python实现Windows桌面定时提醒休息软件示例代码详解
长时间坐在电脑前会导致眼睛疲劳、颈椎疼痛等问题。为了帮助用户更好地保护自己的健康,本文将介绍如何使用Python实现一个Windows桌面定时提醒休息程序。该程序可以在指定的时...
2024-11-29 编程技术
113

Python出现“Unexpected indent”错误的原因及解决方法详解
Python作为一种高级编程语言,以其简洁、易读和强大的功能而广受欢迎。然而,Python对代码的缩进有着严格的要求,这使得初学者在编写代码时常常会遇到“Unexpected indent”(...
2024-11-29 编程技术
125

Python提示“SyntaxError: invalid syntax”错误的解决办法
在编写Python代码时,我们难免会遇到各种各样的错误,其中最常见的之一就是"SyntaxError: invalid syntax"。这种错误通常意味着代码中存在语法问题,导致Python解释器无法正确...
2024-11-27 编程技术
130

Python中'IndentationError: unexpected indent'错误的解决方法
在Python编程中,缩进(Indentation)是一个非常重要的概念,因为它决定了代码块的层次结构和执行顺序。然而,由于缩进的严格要求,开发者很容易因为不小心的缩进错误而遇到&#0...
2024-11-26 编程技术
132

使用Python爬虫实现全国失信被执行人名单查询功能的示例代码
Python作为一种强大且易用的编程语言,提供了丰富的库和工具,使得实现网络爬虫变得相对简单。本文将介绍如何使用Python爬虫实现全国失信被执行人名单的查询功能,并提供完整...
2024-11-22 编程技术
126