2016-07-22 21 views
0

私はそのダムの質問を知っています。しかし私を信じて - 私はすべてのインターネットを検索し、私は答えが得られませんでした。すべての最初の 、私のコードがある: どのように私はscapyによってサイトからhttpデータを取得するのですか

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」(最初のパラメータ)を印刷するトリング

- そのデータなしで私に答えを与えることを。 見て:私は、Wiresharkのでtransmitionを嗅いとき は、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 

あり、残りの1件の回答を、持って何の任意のデータ....... しかし、私は、HTMLを得なかったのですパケット内のコード。

私の質問です - どのように私がやったように私は、GETリクエストを送信することができ、およびサイトからHTMLコードを保存する(それを印刷したり、ファイルへ.. doesntのメッター。)

答えて

0

Iと思いますscapy-httpを使用することを強くお勧めします。これは、HTTPのサポートに役立つScapy Extensionです。

+0

私はそれを使用することができますが、私はそれなしでHTTP REQを行う方法を知りたいと思います。問題は、私がこれをしたときの答えは、AckでHTMLコードではないということです。あなたはなぜそれが分かりませんか? – jony

+0

最初にTCP接続を確立してから、TCPペイロードの本体でHTTPリクエストを実行する必要があります。したがって、最初にSYN、ACKを受信して​​から、SYN/ACKを送信します。その後、TCPペイロードの本体にHTTPを送信し、うまくいけばそれを受け取ることができます – StephenG

+0

私は送信したコードで何をしたか – jony

関連する問題