可以用python编写自己的数据包吗?

可以用python编写自己的数据包吗?,python,sockets,packets,Python,Sockets,Packets,嗯,我知道这是可能的,使用外部库和模块,比如scapy。但是如果没有外部模块呢?不以root用户身份运行脚本?没有外部依赖关系 我已经在谷歌上搜索了很多次,但是没有找到太多的帮助。我希望能够创建自己的数据包,但不需要以root身份运行,也不需要安装额外的依赖项 有什么建议吗?许多操作系统(Linux)不允许原始套接字,除非您的有效用户ID为0(也称为root)。这不是图书馆的问题。某些操作系统(Windows XP SP2之后的非服务器Windows)不允许手工制作原始套接字 您可以在系统上阅读

嗯,我知道这是可能的,使用外部库和模块,比如scapy。但是如果没有外部模块呢?不以root用户身份运行脚本?没有外部依赖关系

我已经在谷歌上搜索了很多次,但是没有找到太多的帮助。我希望能够创建自己的数据包,但不需要以root身份运行,也不需要安装额外的依赖项

有什么建议吗?

许多操作系统(Linux)不允许原始套接字,除非您的有效用户ID为0(也称为root)。这不是图书馆的问题。某些操作系统(Windows XP SP2之后的非服务器Windows)不允许手工制作原始套接字


您可以在系统上阅读有关原始套接字的更多信息。请注意,可以使用Python套接字模块传递所有套接字选项。

以下是如何在Python中对原始ICMP“ping”数据包进行编码:


您可以创建所需的所有原始数据包,但除非您是root用户,否则无法将其发送到任何地方。当然,你也可以不用外部模块来编写它们——外部模块是用与你编写代码相同的Python编写的,你只是在重新发明轮子。你想制作什么样的数据包?手工制作的SYN数据包总是需要根。这是没有办法的。打开一个TCP连接将发送一个SYN数据包,因此我认为您可以打开和关闭许多TCP连接,但是您将无法对SYN数据包的内容进行很多控制,并且您将无法以最快的速度发送它们。