企业内部您是否遇到过IP无法定位和查询的情况,而网络和运维的部分平台不便开放给其他用户。所以本次搭建简单的IP查询网站给普通用户使用

环境: 1.mongodb(可使用其他数据库),数据库安装可自行查询其他网站 2.streamlit 实现简单网站查询IP地址归属,简单方便。

streamlit安装踩坑_在下菜鸡的博客-CSDN博客_streamlit安装

代码如下:

#coding:utf-8 import streamlit as st import pymongo @st.cache # 开启缓存,如果不缓存,每次刷新都要请求,缓存可以减少搜索时间 def mongodb(): # build connection conn = pymongo.MongoClient('192.168.100.100', 27017) # connect dataBase mydb = conn.cmdb_data # get collection myCollect = mydb.cmdb_dns_list # myCollect.insert_one(data_dict) # print(myCollect) return myCollect db = mongodb() # a = db.find() # 查询所有的数据库,无法直接查看,使用for循环可以打印出来 # a = db.find_one({"IP":"192.168.1.1"}) # 查询单条数据 # print(a) # for i in a: # print(i) st.header("IP地址查询") title = st.text_input('请输入IP', '192.168.1.1') st.write('输入的内容为', db.find_one({"IP":title})) # df = a # st.dataframe(df)

展示结果:

python获取网关ip地址(10行代码制作企业内网IP地址查询网站)(1)

代码过于简单,可能存在注入等漏洞情况(虽然已经限制只查询IP),建议生产环境需要对输入的内容进行限制。避免出现被提权的情况,那就得不偿失啦

问题:

安装streamlit 可能会遇到下列错误

python获取网关ip地址(10行代码制作企业内网IP地址查询网站)(2)

解决方案:

1、升级setuptools pip3 install --upgrade setuptools 2、升级pip工具 pip3 install --upgrade pip

再安装streamlit 已经成功

python获取网关ip地址(10行代码制作企业内网IP地址查询网站)(3)

内网搭建公网IP查询页面

代码如下:

#coding:utf-8 import streamlit as st import requests @st.cache def ip(ipaddress): url = "http://ip-api.com/json/{ip}?lang=zh-CN".format(ip=ipaddress) res = requests.get(url).json() # return res if res["status"] == "success": return {"状态": "成功" if res["status"] in "success" else "失败","国家": res["country"],"国家代码": res["countryCode"],"区域": res["region"],"省份": res["regionName"],"城市": res["city"],"邮政编码": res["zip"],"经度": res["lat"],"纬度": res["lon"],"时区": res["timezone"],"运营商": res["isp"],"企业或组织":res["org"],"AS": res["as"],"查询IP": res["query"]} else: return ["输入错误,请输入公网IP地址"] st.header("IP地址查询") title = st.text_input('请输入IP', '1.1.1.1') # st.write('输入的内容为', db.find_one({"IP":title})) st.write('输入的内容为', ip(title))

页面展示

python获取网关ip地址(10行代码制作企业内网IP地址查询网站)(4)

,