使用 web.py 框架实现 IP 自助查询

admin 2024年3月6日07:35:26评论7 views字数 1225阅读4分5秒阅读模式

内网中有查本机 IP 的需求,对于没有计算机基础的人,使用网站查询比命令查询要方便。之前使用 socket、Flask 实现过查 IP 的功能,这次使用 web.py 实现。


最终效果如下:

使用 web.py 框架实现 IP 自助查询

实现的 Python 代码为:

import web
urls = ( '/', 'index')
class index: def GET(self): ip = web.ctx.ip return ip
if __name__ == "__main__": app = web.application(urls, globals()) app.run()

运行前需要安装 web.py 模块:

$ pip install web.py$ python get_ip.py 7777

访问时使用 http://<ip>:<port> 进行访问。如果需要使用 https 协议,而非 http 协议,则需要对代码进行小幅度修改:

import web
from cheroot.server import HTTPServerfrom cheroot.ssl.builtin import BuiltinSSLAdapter
HTTPServer.ssl_adapter = BuiltinSSLAdapter( certificate='cert/server.crt', private_key='cert/private.key')
urls = ( '/', 'index')
class index: def GET(self): ip = web.ctx.ip return ip
if __name__ == "__main__": app = web.application(urls, globals()) app.run()

并且需要使用 openssl 工具生成自签名的 SSL  证书,操作步骤如下:

$ mkdir -p cert $ cd cert$ openssl genpkey -algorithm RSA -out private.key -aes256$ openssl req -new -key private.key -out server.csr$ openssl x509 -req -days 365 -in server.csr    -signkey private.key -out server.crt$ 

使用 web.py 框架实现 IP 自助查询

生成证书时需要输密码,该密码在运行 python 程序时也需要:

使用 web.py 框架实现 IP 自助查询

访问网页时使用 https://<ip>:<port> 进行访问。

总结:

查 IP 的应用用来查本机 IP 用处不大,但对于复杂网络,比如经过 NAT 、防火墙或 VPN 之后的 IP 是比较有用的。这些 IP 经过转换已经不是原始 IP 了,比如路由器的上联 wan 口 IP,如果不知道路由器的管理地址,查 wan 口 IP 是比较麻烦的。相反通过访问查 IP 的 web 应用可以轻松获取路由器的 wan 口 IP。

全文完。

如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

原文始发于微信公众号(生有可恋):使用 web.py 框架实现 IP 自助查询

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月6日07:35:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用 web.py 框架实现 IP 自助查询https://cn-sec.com/archives/2550240.html

发表评论

匿名网友 填写信息