Я знаю его немой вопрос. но верьте мне - я обыскал все в интернете, и у меня не было ответа. первую очередь, есть мой код:Как получить http-данные с сайта 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
нет каких-либо данных ....... но когда я понюхал transmition в Wireshark, я бы получил HTML кода в пакете.
мой вопрос - как я могу отправить запрос Get, как я сделал, и сохранить HTML-код с сайта (для печати, или в файл .. оленья кожа имеет значение ..)
Я могу использовать его .. но я хочу знать, как делать HTTP REQ без него. Проблема в том, что ответ, который я получаю, когда я это делаю, - это Ack, а не HTML-код. вы не знаете, почему? – jony
вам необходимо сначала установить TCP-соединение, а затем выполнить свой HTTP-запрос в теле полезной нагрузки TCP. Итак, сначала SYN, получите ACK, а затем отправьте SYN/ACK. После этого вы можете отправить HTTP в тело полезной нагрузки TCP, а затем, надеюсь, получить его – StephenG
Thats just what i did in code i sent – jony