Я написал Python DNS-сервер, используя Scapy, и у меня есть проблема.Я нюхаю пакет DNS (по типу фильтра A или PTR) и затем хочу отправить соответствующий ответ.
Я использую два компьютера, и на одном из них я использую nslookup www.google.com, это показывает мне "ошибка времени ожидания запроса "- время ожидания составило 2 секунды.BYW я получил этот пакет, и я отправил один !!но другой компьютер не получил это вовремя, я думаю.
я пытался изменить время ожидания до 20 секунд, но это просто подождать 20 секунд ... и затем показывает ошибку ... и мой сервер получает пакетчерез эти 20 секунд.
как я могу решить эту проблему и с чем это связано !!
Спасибо заранее:)
вот некоторые из моих кодов (в соответствующих случаях)части):
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)