コード例 #1
0
 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 + ") .."