推广 热搜:     参数  行业  机械  教师  设备  系统  公司  企业 

GO工具开发|基于网站API的子域名与IP反查工具(一)

   日期:2024-11-19     浏览:79    移动:http://sicmodule.glev.cn/mobile/quote/9142.html

作者: 墨阳 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

GO工具开发|基于网站API的子域名与IP反查工具(一)

最近开始学习GO语言,希望可以摆脱脚本小子的苦恼,在需要的时候可以根据需要写一些小工具。在做信息搜集的时候无意间发现了一个网站,提供了API接口,于是产生了通过脚本来方便的获取数据的想法。脚本很简单也比较基础,需要的功能百度一下就可以找到实现方法,学习完基本语法就可以来写些小工具啦。由于只用到了一个网站,所以数据肯定是不全面的,后续有需要可以自行添加。

本文中用到的网站是dnsgrep.cn,提供了API查询接口,接口token需要邮箱申请,免费的。

既然是走的网站接口,那么首先需要发送一个请求,获取网站的响应并且解析数据,然后将解析的数据输出出来。首先分析一下网站响应数据的格式。 GO工具开发|基于网站API的子域名与IP反查工具(一) 可以看到,返回的数据时json格式,go语言提供了json.Unmarshal()函数来解析json数据,整理一下json格式,这里如果数据很长可以用在线的json格式美化网站

 

子域名查询和ip反查的格式是一样的。首先最外层是status、data两个字段,status是int类型,data字段内容又包含了data、count和type字段,内层的data是一个字典的切片,count和type是int类型。下面来构造一下存放解析数据的结构体,这里可以使用结构体嵌套。

 

这里建了一个vars的包,用于定义整个程序的全局变量

 
 

建一个util包,用于程序调用的函数部分,首先,是对网站接口的请求函数

 

下面来写解析json数据的函数

 

现在已经获得了网站数据的解析结果,接下来就要将结果显示出来,普通的打印的方式由于数据长度不一致导致每行信息长短不一,不能对齐,不便于查看,这里使用了github.com/liushuochen/gotable三方库来进行表格化输出

 

如果我们想将结果保存到excel中,可以使用三方库github.com/xuri/excelize/v2来实现

 
 

上面通过不同函数实现了所需要的功能,接下来就要在主函数中调用

对于需要输入参数部分,可以使用三方库github.com/urfave/cli来实现

 
 
 
 

运行一下,看看是不是我们想要的结果 GO工具开发|基于网站API的子域名与IP反查工具(一) GO工具开发|基于网站API的子域名与IP反查工具(一)

一个简单的单任务单线程的脚本就写好了。由于查询网站的单一,数据肯定是不全的,那么根据需要,可以自行扩展。下一篇会将这个脚本完善一下,改成多任务的多线程的查询,并简单优化一下使用体验。 项目地址:https://github.com/MoYang233/subdomain-demo/tree/main/subdomain-demo1

本文地址:http://sicmodule.glev.cn/quote/9142.html    歌乐夫 http://sicmodule.glev.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关行业动态
推荐行业动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号