我用Scapy编写了一个python DNS服务器,我遇到了一个问题。 我嗅探一个DNS包(通过过滤器到a或PTR类型),然后我想发送一个相关的响应。在
我使用两台计算机,其中一台使用nslookupwww.google.com 它显示“请求超时错误”-超时为2秒。 BYW我收到了这个包裹,我发了一个!!但我猜另一台电脑没有按时收到。在
我试着把超时改为20秒,但它只是等了20秒。。然后显示了一个错误。。 我的服务器在这20秒后收到包。在
我怎样才能解决这个问题,是什么原因造成的!!在
感谢预付款:)
以下是我的一些代码(在5月份的相关部分):
def filter_dns(packet):
return DNS in packet and packet[DNS].opcode == 0 and (packet[DNSQR].qtype == 1 or packet[DNSQR].qtype == 12)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind((MY_IP, PORT))
print "Server started successfully! Waiting for data..."
packets = sniff(count=1, lfilter=filter_dns)
def send_typeA(packet, result):
mypacket = IP(dst=Ip_Client) / DNS() / DNSRR()
mypacket[DNSRR].rrname = packet[DNSQR].qname
mypacket[DNSRR].rdata = result # result is the ip of the domain name
mypacket[DNSRR].ttl = 100
print mypacket.show()
send(mypacket)
目前没有回答
相关问题 更多 >
编程相关推荐