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のメッター。)
私はそれを使用することができますが、私はそれなしでHTTP REQを行う方法を知りたいと思います。問題は、私がこれをしたときの答えは、AckでHTMLコードではないということです。あなたはなぜそれが分かりませんか? – jony
最初にTCP接続を確立してから、TCPペイロードの本体でHTTPリクエストを実行する必要があります。したがって、最初にSYN、ACKを受信してから、SYN/ACKを送信します。その後、TCPペイロードの本体にHTTPを送信し、うまくいけばそれを受け取ることができます – StephenG
私は送信したコードで何をしたか – jony