def getDNSPacket(self): """ 构造DNS报文 :return: """ try: dns = DNS() dns.id = int(self.entries[0].get()) dns.qr = int(self.entries[1].get()) dns.opcode = int(self.entries[2].get()) dns.rd = int(self.entries[3].get()) dns.qd = DNSQR(qname=self.entries[4].get()) udp = UDP() ip = IP() ip.dst = self.entries[5].get() dns_packet = Ether() / ip / udp / dns dns_packet.show() self.resultText.insert('end', dns_packet.summary() + '\n') self.resultText.insert('end', str(dns_packet) + '\n') return dns_packet except Exception as e: print(e.with_traceback()) finally: pass
################################################################### #reset a thing or so.. my_query = "wpad" print "-------------------------------------------------" print "Sending mDNS request for " + my_query + ".." ethernet = Ether(src=my_mac,dst=mdns_target_mac) ip = IP(src=my_ip,dst=mdns_target_ip) udp = UDP(sport=5353,dport=5353) dns = DNS() dns.id = queryid dns.qr = 0 dns.opcode = 0 dns.qdcount = 1 dns.rq = 0 dns.qd = DNSQR(qname=my_query,qtype=my_qtype) pkt=ethernet/ip/udp/dns ans,unans=srp(pkt,multi=True,verbose=0,timeout=1) for p in ans: print "-------------------------------------------------" print "Response from: " + p[1][Ether].src, p[1][IP].src print "-------------------------------------------------" print ans print unans my_query = randomstuff(16) print "-------------------------------------------------" print "Sending mDNS request for random host (" + my_query + ") .."
print "" ################################################################### #reset a thing or so.. my_query = "wpad" print "-------------------------------------------------" print "Sending mDNS request for " + my_query + ".." ethernet = Ether(src=my_mac, dst=mdns_target_mac) ip = IP(src=my_ip, dst=mdns_target_ip) udp = UDP(sport=5353, dport=5353) dns = DNS() dns.id = queryid dns.qr = 0 dns.opcode = 0 dns.qdcount = 1 dns.rq = 0 dns.qd = DNSQR(qname=my_query, qtype=my_qtype) pkt = ethernet / ip / udp / dns ans, unans = srp(pkt, multi=True, verbose=0, timeout=1) for p in ans: print "-------------------------------------------------" print "Response from: " + p[1][Ether].src, p[1][IP].src print "-------------------------------------------------" print ans print unans my_query = randomstuff(16) print "-------------------------------------------------" print "Sending mDNS request for random host (" + my_query + ") .."