如何通过scapy从网站获取http数据

时间:2016-07-22 00:01:27

标签: http get scapy

我知道这是一个愚蠢的问题。但是相信我 - 我搜索了我所有的互联网,我没有得到任何答案。 首先,有我的代码:

def Make_Get():
        synR = IP(dst = 'www.google.com', ttl = 64)/TCP(dport = 80, flags = 'S')
        synAckAN = sr1(synR)
        getStr = 'GET /index.html HTTP/1.0 \n\n'
        req = (IP(dst = 'www.google.com', ttl = 64)/TCP(dport = 80, sport = synAckAN[TCP].dport, seq = synAckAN[TCP].ack, ack = synAckAN[TCP].seq+1, flags = 'A')/getStr)

        ans, unans = sr(req)
        return ans, unans

当我运行此功能并打印以打印" ans" (第一个参数) - 它给我一个没有数据的答案。 看: 收到1个数据包,得到1个答案,剩余0个数据包

###[ IP ]###
  version   = 4L
  ihl       = 5L
  tos       = 0x0
  len       = 40
  id        = 9784
  flags     = 
  frag      = 0L
  ttl       = 128
  proto     = tcp
  chksum    = 0xc02f
  src       = 216.58.210.4
  dst       = 192.168.233.128
  \options   \
###[ TCP ]###
     sport     = http
     dport     = ftp_data
     seq       = 2116250139
     ack       = 28
     dataofs   = 5L
     reserved  = 0L
     flags     = A
     window    = 64240
     chksum    = 0x77bc
     urgptr    = 0
     options   = {}
###[ Padding ]###
        load      = '\x00\x00\x00\x00\x00\x00'
None

没有任何数据....... 但是当我在Wireshark嗅到传输时,我在一个数据包中得到了一个HTML代码。

我的问题是 - 如何发送像我这样的Get请求,并保存网站上的html代码(打印它,或者文件......不会...)

1 个答案:

答案 0 :(得分:0)

我强烈建议您使用scapy-http,这是一个scapy扩展,可以帮助您支持HTTP。