利用撒旦搜索引擎查询ip个数,批量下载ip

 

     利用撒旦搜索引擎查询ip个数,批量下载ip,使用语言python3.x

  批量测试时,为了方便直接撸下ip,所以用python写了个GUI撒旦利用工具,写的不是很好,但能用,最下面有下载。

    

   

 

from tkinter import *
import threading
import shodan
root=Tk()

screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
size = '%dx%d+%d+%d' % (300, 400, (screenwidth-300)/ 2, (screenheight-400) / 2)
root.geometry(size)
root.title('撒旦GUI')
root.resizable(width=False, height=False)

title=Label(root,text='python3 撒旦利用GUI',font="16")
title.pack()
api=Label(root,text='输入API',width=12)
api_input=Entry(root,width=20)
api.place(x=30,y=40)
api_input.place(x=140,y=40)
search=Label(root,text='请输入查询语句',width=12)
search_input=Entry(root,width=20)
search.place(x=30,y=80)
search_input.place(x=140,y=80)
#文件名输入
txt_name_input=Entry(root)
txt_name_input.place(x=180,y=120,width=60,height = 30)
txt_txt = Label(root,text='.txt',font="10")
txt_txt.place(x=240,y=125)
#输出框
show_1 = Entry(root)
show_1.place(x=20, y=160, width=250, height=200)



def false():
    show_1.insert("1","请检查API、网络状态、关键字")
def ip_number():
    show_1.delete(0, END)
    show_1.insert("1", "正在查询")
    try:
        api_s = shodan.Shodan(api_input.get())
        results = api_s.search(search_input.get()) #如果修改搜索的内容请注意符号
        ips = results['total']  #ip个数
        ips_str = "ip个数为   "+str(ips)
        show_1.delete(0, END)
        show_1.insert(1,ips_str)
    except shodan.APIError as e:
        false()

def ip_download():
    show_1.delete(0,END)
    show_1.insert("1", "正在下载")

    txt_name =txt_name_input.get()+".txt"
    f = open(txt_name, 'a+')
    try:
        api_s = shodan.Shodan(api_input.get())
        results = api_s.search(search_input.get())
        show_1.insert(1, "正在下载ip:端口. . . . . . ")
        for result in results['matches']:
            url = result['ip_str'] + ":" + str(result['port'])
            f.write(url)    #f.write("http://" + url)
            f.write("\n")
        f.close()
        show_1.delete(0, END)
        show_1.insert(1,"ip收集完毕      T0.0T")
    except shodan.APIError as e:
        false()

def T_ip_number():
    T = threading.Thread(target=ip_number)
    T.start()

def T_ip_download():
    T = threading.Thread(target=ip_download)
    T.start()

B_ip=Button(root,text="获取ip个数",width=10,relief=GROOVE,command=T_ip_number)
B_ip.place(x=20,y=120)
B_txt=Button(root,text="下载到txt",width=10,relief=GROOVE,command=T_ip_download)
B_txt.place(x=100,y=120)

root.mainloop()

  

py下载  https://wwn.lanzout.com/iRkPs02f2jkj

exe下载  https://wwn.lanzout.com/iaktF02f2i9c  密码    6vdu

 

 

 

posted @ 2022-04-01 16:08  mt0u  阅读(641)  评论(0编辑  收藏  举报