干货分享「Python快速实现一个域名、IP信息聚合网站」Python局域网联机Python局域网扫描
域名和IP地址信息是非常基础的情报信息,目前网上有很多网站都提供了域名信息的查询、IP地址及归属地的查询。本文通过Python Flask实现域名及IP情报信息的聚合网站。
因为域名和IP地址信息会有变化,为了减少接口压力,做了本地数据库的存储,新鲜度保存一周,每次查询先从本地数据库获取信息,如果本地库信息有并且没有超过一个星期就从本地库取,没有就从其他网站获取,并更新到本地库。
一、获取域名WHOIS信息
网上提供域名WHOIS信息查询的网站有很多,这里以http://whois.chinafu.com 为例实现WHOIS信息的查询和解析。
这里为了减少直接从其他网站获取WHOIS信息的压力,做了本地数据库的存储,每次先从本地数据库取WHOIS的信息,如果本地库信息有并且没有超过一个星期就从本地库取,没有就从其他网站获取,并更新到本地库。这里getWhoisInfoFromDB实现了取新鲜度为1周的数据,addchinafuWhoisInfo2DB实现将获取的信息保存到本地数据库。
二、根据域名解析出IP
根据域名解析出IP代码:
三、获取IP信息
获取IP信息的API接口也有很多,有淘宝的
https://ip.taobao.com/outGetIpInfo 、IPINFO http://ipinfo.io/、IPAPI http://ip-api.com/ 以及GeoLite2离线库等。从淘宝IP获取IP信息
从ipinfo.io获取IP信息
从ip-api.com获取IP信息
从GeoLite离线库获取IP信息
如何获取GeoLite离线库及如何读取,详见:
http://xiejava.ishareread.com/posts/2c5697c0/四、搭建一个FLASK Web应用来查询聚合的域名、IP情报信息
1、FLASK Web应用的工程组织
2、配置数据及读取配置数据
1)配置数据
配置数据分别放在.env及.flaskenv中,其中.env放的是工程中用到的数据库链接等比较私密的配置信息。.flaskenv
放的是Flask运行环境的信息
.env的配置信息参考如下:.falskenv配置信息参考如下:
2)实现读取配置数据
通过config.py实现配置数据的读取及管理
3、界面及路由
界面很简单就一个域名/IP的输入框,输入域名或IP后去查询相应的域名信息或IP信息显示到界面上。
界面用jinjia2的模板
index.html代码如下:路由配置处理中实现了获取表单中的信息,并判断是域名还是IP如果是域名者获取whois信息,并根据域名获取IP信息。如果输入的是IP则获取IP信息,并反馈到页面上。
4、最终实现效果
至此通过Python快速实现了一个简单的域名、IP信息聚合网站
全部源代码:
https://github.com/xiejava1018/infocollect演示地址:
http://test.ishareread.com/ 原文链接:https://xiejava.gitee.io/posts/fa820ec9/干货分享「Python快速实现一个域名、IP信息聚合网站」Python局域网联机Python局域网扫描