2016-07-22 3 views
0

Я знаю его немой вопрос. но верьте мне - я обыскал все в интернете, и у меня не было ответа. первую очередь, есть мой код:Как получить 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-код с сайта (для печати, или в файл .. оленья кожа имеет значение ..)

ответ

0

Я бы настоятельно рекомендую использовать scapy-http, который является скошенным расширением, которое помогает вам поддерживать HTTP.

+0

Я могу использовать его .. но я хочу знать, как делать HTTP REQ без него. Проблема в том, что ответ, который я получаю, когда я это делаю, - это Ack, а не HTML-код. вы не знаете, почему? – jony

+0

вам необходимо сначала установить TCP-соединение, а затем выполнить свой HTTP-запрос в теле полезной нагрузки TCP. Итак, сначала SYN, получите ACK, а затем отправьте SYN/ACK. После этого вы можете отправить HTTP в тело полезной нагрузки TCP, а затем, надеюсь, получить его – StephenG

+0

Thats just what i did in code i sent – jony

 Смежные вопросы

  • Нет связанных вопросов^_^