2016-08-04 12 views
1

Я хочу использовать модуль питона scapy выполнить эквивалентную командуPython - выкопать какой-либо эквивалент с модулем scapy

dig ANY google.com @8.8.4.4 +notcp 

Я сделал простой пример кода:

from scapy.all import * 

a = sr(IP(dst="8.8.4.4")/UDP(sport=RandShort(),dport=53)/DNS(qd=DNSQR(qname="google.com",qtype="ALL",qclass="IN"))) 

print str(a[0]) 

И отправьте и получите пакет, , но когда я обнюхал пакет, ответ отвечает Server failure.

Wireshark Screenshot - scapy

Wireshark Screenshot - dig

Принюхиваясь сам команды выглядит почти то же самое, но это дает мне правильный ответ, а также он не посылает другой ICMP - Destination unreachable Packet .. это только приходит при отправке его scapy.

Если вам нужна дополнительная информация, не стесняйтесь спрашивать. Может быть, кто-то может помочь мне с этим ..

EDIT:

Может ICMP - Destination unreachable пакет были отправлены, потому что 8.8.4.4 пытается отправить ответ на мой sport, которым закрыт? Но зачем тогда работать ?!

ответ

0

получил код Python работает с scapy ..

srp(Ether()/IP(src="192.168.1.101",dst="8.8.8.8")/UDP(sport=RandShort(),dport=53)/DNS(rd=1,qd=DNSQR(qname="google.com",qtype="ALL",qclass="IN"),ar=DNSRROPT(rclass=3000)),timeout=1,verbose=0) 

В Wireshark мы можем видеть теперь правильный ответ: Wireshark Screenshot

Но я все еще получаю ICMP - Destination unreachable пакет .. и I не знаю почему ..