ZoomEye

import os,json,requests
import argparse


def login():
	url_login="https://api.zoomeye.org/user/login"
	data={
		"username": "invinciblegrass@163.com",
		"password": "Lyq040506lll"
	}
	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("剩余搜索次数: {}".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("地区: %1s %3s "%(json_data[item]['geoinfo']['continent']['names']['zh-CN'],json_data[item]['geoinfo']['subdivisions']['names']['zh-CN']))
	except Exception:
		pass

def Banner():
	print("""
	  _          ____  _                _    
	 | |   _   _/ ___|| |__   __ _ _ __| | __
	 | |  | | | \___ \| '_ \ / _` | '__| |/ /
	 | |__| |_| |___) | | | | (_| | |  |   < 
	 |_____\__, |____/|_| |_|\__,_|_|  |_|\_\\
	       |___/                             \n
	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="需要检索第几页的数据")
	parser.add_argument("-q","--query" ,dest="query",help="单独使用,可用于查询剩余次数")
	parser.add_argument("-g","--get" ,dest="get",help="提取本地json文件并解析出关键数据")
	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()
      
# python temp.py -q query
# python temp.py -s windows -p 3 -f windows.json
# python temp.py -g windows.json
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值