Esempio n. 1
0
def getTrue():
    global getbag_flag
    global typenum
    global bagcon

    print('Packet capture begin')
    getbag_flag = True
    bagnum = int(en.get())  # 获取需要抓包的个数

    # 清空上一次抓包信息
    typenum = []
    bagcon = []

    bagcontent = get_bag(bagnum)  # 子函数名get_bag
    if not len(bagcontent):
        tkMessageBox.showinfo("超时!", "没有抓到数据包")

    # 获取抓包每个类型的个数
    typenum.append(len(bagcontent[TCP]))
    typenum.append(len(bagcontent[UDP]))
    typenum.append(len(bagcontent[ICMP]))
    typenum.append(bagnum - len(bagcontent[TCP]) - len(bagcontent[UDP]) -
                   len(bagcontent[ICMP]))
    # 获取数据包信息
    for i in range(bagnum):
        bagcon.append(bagcontent[i].summary())

    # 删除现有信息,更新信息
    listb.delete(0, END)  # listb是显示不同种类包的个数
    for item in typenum:
        listb.insert(END, item)

    conb.delete(0, END)  # conb是捕捉到的包的简略信息
    for item in bagcon:
        conb.insert(END, item)
Esempio n. 2
0
def getTrue():
    global getbag_flag
    global typenum
    global bagcon
    global bagcontent

    print('Packet capture begin')
    getbag_flag = True
    bagnum = int(en.get())  # 获取需要抓包的个数

    # 清空上一次抓包信息
    typenum = []
    bagcon = []

    # 抓包设置
    find_c = {'0': 'tcp', '1': 'udp', '2': 'port 80', '3': 'port 443'}
    factor = None
    c = [[0, c_tcp.get()], [1, c_udp.get()], [2, c_http.get()],
         [3, c_https.get()]]

    for i, tof in c:
        if tof:
            if factor == None:
                factor = find_c[str(i)]
            else:
                factor = factor + ' or ' + find_c[str(i)]

    bagcontent = get_bag(bagnum, factor)

    print('Packet capture has done')

    if len(bagcontent) == 0:
        tkMessageBox.showinfo("超时!", "没有抓到数据包")
        return

    # 获取抓包每个类型的个数
    typenum.append(len(bagcontent[TCP]))
    typenum.append(len(bagcontent[UDP]))
    typenum.append(len(bagcontent[ICMP]))
    typenum.append(bagnum - len(bagcontent[TCP]) - len(bagcontent[UDP]) -
                   len(bagcontent[ICMP]))
    # 获取数据包信息
    for i in range(len(bagcontent)):
        bagcon.append(bagcontent[i].summary())

    # 删除现有信息,更新信息
    listb.delete(0, END)  # listb是显示不同种类包的个数
    for item in typenum:
        listb.insert(END, item)

    conb.delete(0, END)  # conb是捕捉到的包的简略信息
    for item in bagcon:
        conb.insert(END, item)