사이트에 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()
압축? content-type 헤더를 확인하십시오. – tripleee
당신은 무엇을합니까? –
https://en.wikipedia.org/wiki/HTTP_compression – tripleee