2014-11-29 2 views
3

나는 파이썬 책을 읽고 있는데, scapy을 설치하고 사용하는 자습서가 있습니다. 시도 할 스크립트 중 하나는 "Caltech University의 공용 DNS 서버를 사용하는 www.oreilly.com의 재귀 DNS 쿼리"입니다. 나는 왜 누군가가 유용한 이유 때문에이 일을하고 싶어하는지 확신 할 수 없다. 누군가가 이것이 유용한 이유를 설명 할 수 있다면 그것은 대단 할 것입니다. : DPython Scapy Recursive DNS Query - 서적의 스크립트

내 컴퓨터에이 프로그램을 설치 한 후 bin 디렉토리에서 scapy, ./bin/scapy를 시작합니다. scapy의 버전은 다음과 같습니다

sr1(IP(dst="131.215.9.49")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com"))) 

모든이가하는 인쇄입니다 : :이 스크립트를 해결할 수있는 방법

Begin emission: 
Finished to send 1 packets. 
.......tons of never ending dots in the shell............................. 
.......................................................................... 
.......................................................................etc 

Welcome to Scapy (2.2.0)

뭐 어쨌든 여기에 나를 위해 작동하지 않는 스크립트입니다 그래서 그것은 작동합니까? help()을 사용하여 일부 기능 및/또는 방법을 찾았지만 문제 해결에 충분한 정보를 제공하지 못했습니다. 나는 이것에 익숙한 누군가가 이것을 약간의 이유로 읽고 이것이 나를 이해하도록 도울 것을 기대하고 있었다.

고맙습니다.

해피 홀리데이,

user_loser 단순히 패킷이 어떤 대답하지 않는 것 같다

답변

2

(정상, 131.215.9.49 당신의 재귀 쿼리에 응답해야하는 이유를 이유가 없다).

sr1() 호출을 종료하려면 timeout= 인수 (값 : 초)를 추가 할 수 있습니다.

확실 131.215.9.49가 응답하지 확인하려면하지만 sr1() 전화 작업을 수행 할 수 있습니다 :

  • 문제 host www.oreilly.com 131.215.9.49 쉘에서 당신이 ;; connection timed out; no servers could be reached을 얻을 확인.
  • DNS 서버의 IP 주소로 131.215.9.49를 변경하십시오. (이것은 재귀 쿼리에 응답해야합니다) 그리고 대답을 확인하십시오.

또한 무슨 일이 일어나고 있는지 이해하려면 테스트를 실행하는 동안 tcpdump을 실행하고 어떤 패킷을 보내고 받았는지 확인하십시오.

+0

'timeout' 매개 변수를 추가하는 구문은 어떻게됩니까? 나는'help (sr1)'을보고 이것에 대한 정보를 보았지만 아직도 혼란 스럽다. 예를 들어 스크립트에 슬래시가있는 이유는 무엇입니까? 예를 들어 슬래시 구문'/ UDP()/DNS()'에 익숙하지 않습니다. 이 답변을 주셔서 감사합니다. 지금이 정보를 실험하고 있습니다. : D –

+0

'sr1()'에'timeout' 인수를 추가하는 방법을 알아 냈습니다. 'sr1 (IP (dst = "131.215.9.49")/UDP()/DNS (rd = 1, qd = DNSQR (qname = "www.oreilly.com")), timeout = 25)'프로그램은 25 초를 인쇄하고'9 개의 패킷을 받았다. 0 개의 대답을 얻었고 1 개의 패킷을 남겼다. ' "나는 이것이 승리라고 생각한다. :)^_0 –

+0

나는 bash 쉘에서'host www.oreilly.com 131.215.9.49'를 실행하고';; 연결 시간이 초과되었습니다; 서버에 연결할 수 없음'line : D –