requests peticiones libreria hacer example enviar ejemplos con python http networking get scapy

peticiones - Python-Scapy o similar: cómo puedo crear una solicitud HTTP GET a nivel de paquete



request python ejemplos (2)

¿Has echado un vistazo al tutorial ? Solo copiando y pegando, parece que va a ensamblar una solicitud HTTP:

>>> a=Ether()/IP(dst="www.slashdot.org")/TCP()/"GET /index.html HTTP/1.0 /n/n"

Soy un programador moderado, solo estoy ingresando a la programación de la red.

Como intento de mejorar mi comprensión de las redes en general, estoy tratando de realizar varias acciones HTTP básicas desde el nivel de paquetes. Mi pregunta es esta: ¿cómo podría usar una biblioteca como SCAPY para construir una solicitud HTTP GET y elementos asociados a nivel de paquete? Me doy cuenta de que esto puede parecer extraño, pero parece que no puedo encontrar ninguna información que lo detalle, y mis propios intentos con PAROS y Ethereal han sido ... Menos que satisfactorios.

Gracias por cualquier ayuda ofrecida!

Trimiert


Si desea realizar un apretón de manos de tres vías completo, tendrá que hacerlo manualmente.

Comience con su paquete SYN:

>>> syn = IP(dst=''www.google.com'') / TCP(dport=80, flags=''S'') >>> syn <IP frag=0 proto=tcp dst=Net(''www.google.com'') |<TCP dport=www flags=S |>>

A continuación, reciba el paquete SYN-ACK del servidor, sr1 funciona. A continuación, envíe su solicitud HTTP GET:

>>> syn_ack = sr1(syn) Begin emission: Finished to send 1 packets. * Received 1 packets, got 1 answers, remaining 0 packets >>> syn_ack <IP version=4L ihl=5L tos=0x0 len=44 id=424 flags= frag=0L ttl=55 proto=tcp chksum=0x2caa src=74.125.226.148 dst=10.20.30.40 options=[] |<TCP sport=www dport=ftp_data seq=3833491143 ack=1 dataofs=6L reserved=0L flags=SA window=5720 chksum=0xd8b6 urgptr=0 options=[(''MSS'', 1430)] |<Padding load=''/x00/x00'' |>>>

Luego configure su secuencia de TCP y los números de Ack y envíe el GET:

getStr = ''GET / HTTP/1.1/r/nHost: www.google.com/r/n/r/n'' request = IP(dst=''www.google.com'') / TCP(dport=80, sport=syn_ack[TCP].dport, seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1, flags=''A'') / getStr reply = sr1(request)