Python調用Zoomeye搜索接口的實現(xiàn)
鐘馗之眼是一個強大的搜索引擎,不同于百度谷歌,它主要收集網絡中的主機,服務等信息,國內互聯(lián)網安全廠商知道創(chuàng)宇開放了他們的海量數(shù)據庫,對之前沉淀的數(shù)據進行了整合、整理,打造了一個名符其實的網絡空間搜索引擎ZoomEye,運用Python接口可以靈活的實現(xiàn)數(shù)據采集。
鐘馗之眼的常用搜索關鍵字如下所示。
app:組件名稱
ver:組件版本
搜索 apache組件 版本2.4 --> app:apache ver:2.4
port:端口號 ---> 例如:搜索開放了SSH端口的主機 port:22
指定搜索的操作系統(tǒng) OS:操作系統(tǒng)名稱 ---> OS:Linux
指定搜索的服務 service:服務名稱 ---> 例如,搜素SSH服務 Service:SSH
指定搜索的地理位置范 --> country:國家 city:城市名 country:China --> city:Beijing
搜索指定的CIDR網段 例如: CIDR:192.168.158.12/24
搜索指定的網站域名 ---> site:www.baidu.com
搜索指定的主機名 ---> hostname:zwl.cuit.edu.cn
搜索指定的設備名 --> device:router
搜索具有特定首頁關鍵詞的主機 ---> keyword:technology
提供的搜索腳本如下。
import os,json,requests import argparse def login(): url_login="https://api.zoomeye.org/user/login" data={ "username": "1098395580@qq.com", "password": "xiaohua@1998" } data=json.dumps(data) r=requests.post(url=url_login,data=data) return json.loads(r.content)['access_token'] def GetResidual(token): url="https://api.zoomeye.org/resources-info" headers={'Authorization':'JWT ' + token} r=requests.get(url=url,headers=headers) datas=json.loads(r.content) print("剩余搜索次數(shù): {}".format(datas['resources']['search'])) def Search(token,search,files,page): url="https://api.zoomeye.org/web/search?query={}&page={}".format(search,page) headers={'Authorization':'JWT ' + token} r=requests.get(url=url,headers=headers) data = json.loads(r.content)['matches'] with open(files,'w',encoding='utf-8') as f: json.dump(data,f,ensure_ascii=False) print("[+] 保存文件: {} 長度: {} 頁碼: {} 查詢語法: {}".format(files,len(data),page,search)) def Get_System(files): try: with open(files,'r',encoding='utf8') as fp: json_data = json.load(fp) json_len = len(json_data) for item in range(0,json_len): print("IP地址: %15s |" %(json_data[item]['ip'][0]),end="") print("地區(qū): %1s %3s "%(json_data[item]['geoinfo']['continent']['names']['zh-CN'], json_data[item]['geoinfo']['subdivisions']['names']['zh-CN'])) except Exception: pass def Banner(): print(" _ ____ _ _ ") print(" | | _ _/ ___|| |__ __ _ _ __| | __") print(" | | | | | \___ \| '_ \ / _` | '__| |/ /") print(" | |__| |_| |___) | | | | (_| | | | < ") print(" |_____\__, |____/|_| |_|\__,_|_| |_|\_\\") print(" |___/ \n") print("E-Mail: me@lyshark.com") if __name__== "__main__": Banner() parser = argparse.ArgumentParser() parser.add_argument("-s","--search",dest="search",help="根據傳入語法搜索指定內容") parser.add_argument("-f","--file",dest="file",help="保存文件的名字 *.json") parser.add_argument("-p","--page",dest="page",help="需要檢索第幾頁的數(shù)據") parser.add_argument("-q","--query" ,dest="query",help="單獨使用,可用于查詢剩余次數(shù)") parser.add_argument("-g","--get" ,dest="get",help="提取本地json文件并解析出關鍵數(shù)據") args = parser.parse_args() if args.search and args.file and args.page: token = login() Search(token,args.search,args.file,args.page) elif args.query and args.search == None: token = login() GetResidual(token) elif args.get: Get_System(args.get) else: parser.print_help()
查詢使用次數(shù): 默認情況下,鐘馗之眼每月給與10000條左右的查詢次數(shù),可以使用 -q 參數(shù)實現(xiàn)次數(shù)的查詢。
**搜索功能的使用:**通過-s
選項指定你需要搜索的關鍵字,可以結合鐘馗之眼搜索語法使用-p
就是搜索的頁碼數(shù)-f
保存為json文件。
在JSON中解析IP地址: 在本地JSON文件中解析IP地址,提取出關鍵數(shù)據。
到此這篇關于Python調用Zoomeye搜索接口的實現(xiàn)的文章就介紹到這了,更多相關Python調用Zoomeye搜索接口內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PyCharm 配置遠程python解釋器和在本地修改服務器代碼
這篇文章主要介紹了PyCharm 配置遠程python解釋器和在本地修改服務器代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-07-07使用Anaconda3建立虛擬獨立的python2.7環(huán)境方法
今天小編就為大家分享一篇使用Anaconda3建立虛擬獨立的python2.7環(huán)境方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python中numpy數(shù)組與list相互轉換實例方法
在本篇文章里小編給大家整理的是一篇關于python中numpy數(shù)組與list相互轉換實例方法,對此有興趣的朋友們可以學習下。2021-01-01python網絡爬蟲selenium打開多窗口與切換頁面的實現(xiàn)
本文主要介紹了python網絡爬蟲selenium打開多窗口與切換頁面的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01