2016-06-26 7 views
-1

사이트에 HTTP 요청을 보내고 scapy를 사용하여 HTML 파일에 내용을 저장하는 코드를 만들려고합니다.파이썬 스크립트를 사용하여 패킷 내용 추출하기

그래서 내 코드 있음 경우 :

r = Ether()/IP(dst=cache_ip)/TCP()/"GET /index.html HTTP/1.0 \n\n" 
b = str(r) 
http.write(b) 
print "html page is ready, check your html files folder to check" 
http.close() 

그리고 cache_ip 구글의 HTML 페이지가 내 컴퓨터에 HTML 파일로 저장해야되는 출력과 구글의 IP가 ... Instad이다 나는이 얻을 :

ÿÿÿÿÿÿ<¨*â[email protected] Þ QÚûPP PÛGET /index.html HTTP/1.0 

이제는 요청과 같은 작업에 훨씬 좋은 모듈이 있다는 것을 알고 있지만, 내 임무는 오직 scapy에서만 수행하는 것입니다. 어느 누구든 문제를 지적하고 scapy를 사용하여 작성된 작업에 대해 더 나은 코드를 제공 할 수 있다면 멋질 것입니다.

편집 - TCP 핸드 셰이크를 사용하려했지만 지금은 HTML 파일에 내용을 쓰려고했습니다. 이유는 내가 - 그것을에게 주어진 코드에서

http = open(os.path.dirname(
    os.path.abspath(inspect.getfile(inspect.currentframe()))) + "/html_saved_pages/" + url + ".html", "w") 

update_history(url) 

syn = IP(dst=cache_ip)/TCP(dport=80, flags='S') 
syn_ack = sr1(syn) 
syn_ack 
getStr = 'GET/HTTP/1.1\r\nHost:'+cache_ip+'\r\n\r\n' 
request = IP(dst=cache_ip)/TCP(dport=80, sport=syn_ack[TCP].dport, 
seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1, flags='A')/getStr 
reply = sr(request) 
http.write(reply) 
print "html page is ready, check your html files folder to check" 

http.close() 
+0

압축? content-type 헤더를 확인하십시오. – tripleee

+0

당신은 무엇을합니까? –

+0

https://en.wikipedia.org/wiki/HTTP_compression – tripleee

답변

0

할 수 없습니다, 무엇 http 명확하지 않다, 그 결과, http.write()http.close() 할 것입니다 정확히 알 수있는 방법이 없습니다.

How to create HTTP GET request Scapy?

: 당신의 목표는 scapy를 사용하여 웹에서 HTML을 검색하는 경우

그러나 어떤 경우에

는, 당신은 HTTP GET 요청에 의해 선행 된 TCP 3 방향 핸드 셰이크로 시작해야합니다