如何使用python从360网络空间测绘(quake)和钟馗之眼(zoomeye)获取需要的数据

一、钟馗之眼(zoomeye)API使用代码

之前文章有提到从钟馗之眼(zoomeye)手动搜索酒店源的特征关键字来获取IP:

如何利用钟馗之眼(zoomeye)手动获取酒店节目源

当然我们也可以完全通过python代码来请求获取需要的数据。但是钟馗之眼不像fofa那样可以不用登录就可以提供公共查询,需要登录才能获取到更多信息,因此使用python请求就需要附加api进行验证后才能获取到数据,我们看看官方相关文档:

图片

这个其实对我这种非专业人士完全看不懂,不过通过网络方式还是找到了相关python代码:

def search_zoomeye(config):     # ZoomEye API URL         url = "https://api.zoomeye.org/host/search"
    # Search parameters     params = {
        "query": config['keyword'],#keyword,         "page": 1,  # 页码,从1开始         "facets": "app,os"  # 可选,用于获取结果的统计信息    }
    # Headers with API key     headers = {         "API-KEY": config['api_key'],#api_key,         "Content-Type": "application/json"    }
    response = requests.get(url, params=params, headers=headers)
    # Check if request was successful     if response.status_code == 200:         # Get JSON response         data = response.json()     else:             print(f"Error: {response.status_code} - {response.text}")

通过以上代码将api和关键字分别传递到query和API-KEY就可以获取得到json结果的数据,然后在json数据中提取相应的IP和端口就可以了。

关于API位置:登录后进入个人中心就可以看到API-KEY

图片

运行结果:

图片

如果显示402错误,查询原因为资源请求额度不足。

图片

原来使用API是需要扣除权益积分,权益积分就只能通过充值或者开通会员可以免费使用API。

图片

因此,钟馗之眼(zoomeye)就此PASS吧。

二、360网络空间测绘(quake)使用代码

相较于钟馗之眼(zoomeye),个人感觉360的quake网络空间测绘更胜一筹,数据也更多更新。

360网络空间测绘(quake)官网:

https://quake.360.net/

首先我们还是看看官方的API使用文档:

图片

接口请求示例完全可以直接复制使用,只需对其中的几个重要参数进行修改:

import requests
headers = {     "X-QuakeToken": "用户API Key"}
data = {     "query": "port: 443",     "start": 0,     "size": 10}
response = requests.post(url="https://quake.360.net/api/v3/search/quake_service", headers=headers, json=data)print(response.json())

1、用户API Key:填入自己的API KEY;

2、query:填入需要查询的关键字;

3、size:(可选项)查询数据条数,即输出多少条数据。

因此我们可以直接引用上方代码获取json的结果数据,再从json提取相应的IP和端口即可。

关于quake使用API使用费用问题:

0x04 接口调用积分使用说明

  1. 每个月不同等级用户会得到相应等级的免费API调用次数福利,你可以在个人中心中查看月度剩余免费查询次数。
  2. 如果免费API次数消耗完毕后,通过API调用的资产数量,会花费同等数量的积分(即1条资产=1积分),望大家注意自己的积分是否充足!

大概是1条数据资产耗费1积分,然而每个用户自然月会获得3000的积分,因此对于个人日常使用还是完全足够了。

图片

我们用写好的代码查询关键字:iptv/live/zh_cn.js AND country: “China” AND province: “hunan” AND port: “9901”,试试获取的10条数据结果:

图片

然后用程序自动测试每一条数据是否有酒店节目源:

图片

其中三条数据有效,获取到的节目列表:

图片

如果将quake自动获取IP和酒店源代码结合起来就可以全自动获得节目列表了。

三、相关下载即使用说明:

1、本程序会要求填入API KEY才能获取到数据,程序不会记录上传任何API数据,同时,保险起见建议测试完后更新一下API(API旁边的刷新按钮),这样之前输入的API就失效了。

图片

2、文件包含zoomeye和quake两个测绘空间的查询程序,推荐使用quake,如果zoomeye有足够权益积分或者会员也可以使用zoomeye。

3、程序包含windows系统的exe和linux的py,但是py有对主要代码转换为so文件,在aarch64环境的debian12 python3.11上运行没问题,其他平台未做测试。

4、使用说明,相关配置文件和关键字均在config.txt中填写,只需修改=后面的内容。其中api_key、keyword、output_file分别为zoomeye的API KEY、查询关键字和结果保存的文件名。

size:quake获取的数据条数,默认10;

quake_api :填入自己的API KEY;

quake_keyword:即我们手动在浏览器查询输入的关键字,我们可以限定地区、端口等获取更精确的数据,详细语法官方有说明。

为避免程序商业行为,程序运行均有密码,密码不定期会更新,如出现密码错误,公众号回复【运行密码】以获取最新密码,密码保存到config.txt,密码未到期,完全不影响自动运行。

图片

linux系统运行:

zoomeye:python main.py或python3 main.py

quake:python quake.py或python3 quake.py

图片

Windows系统运行:

直接运行对应的exe文件即可。

图片

5、由于从获取到有效IP到自动生成有效的列表还处于不完善阶段就不放出来了,后续完善后再考虑放出。本文分享相关文件仅供个人测试使用。

6、下载地址:

图片

扫码关注公众号,回复本文发布日期【240511】即可获取下载链接。有任何建议欢迎留言或后台私信。

如何使用python从360网络空间测绘(quake)和钟馗之眼(zoomeye)获取需要的数据

欢迎关注本公众号,后台发消息给我,我会即时进行回复的哦。

编辑:树树
声明:除原创内容及特别说明之外,推送稿件文字及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部