如何在 Python 中生成 TCP、IP 和 UDP 数据包 [英] How To Generate TCP, IP And UDP Packets In Python

查看:106
本文介绍了如何在 Python 中生成 TCP、IP 和 UDP 数据包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

谁能告诉我用 Python 生成 UDP、TCP 和 IP 数据包的最基本方法吗?

Can anyone tell me the most basic approach to generate UDP, TCP, and IP Packets with Python?

推荐答案

根据jokeysmurf 的建议,您可以使用scapy<制作数据包/a>

As suggested by jokeysmurf, you can craft packets with scapy

如果你想发送/接收常规的,即非自定义的数据包,那么你应该使用套接字或套接字服务器:

If you you want to send/receive regular, i.e. non-custom, packets then you should use socket or socketserver:

例如,要向 Google 的端口 80 发送 TCP HTTP GET 请求,请使用:

For example, to send a TCP HTTP GET request to Google's port 80 use:

    import socket
    HOST = 'google.com'    # The remote host
    PORT = 80              # The same port as used by the server
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    s.send('GET / HTTP/1.1\r\nHost: google.com\r\n\r\n')
    data = s.recv(1024)
    s.close()
    print 'Received', repr(data)

要发送 UDP 而不是 TCP,请将 SOCK_STREAM 更改为 SOCK_DGRAM.

To send UDP instead of TCP change SOCK_STREAM to SOCK_DGRAM.

这篇关于如何在 Python 中生成 TCP、IP 和 UDP 数据包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆