使用Python编写自己的数据包是否可行?

3

我知道使用外部库和模块(如scapy)是可能的。但是如果没有外部模块呢?不以root身份运行脚本呢?没有外部依赖呢?

我已经做了很多搜索,但没有找到太多帮助。我想能够创建自己的数据包,但不想以root身份运行或安装额外的依赖。

有什么建议吗?


你可以创建所有原始数据包,但如果你不是root用户,就无法将它们发送到任何地方。另外,当然你可以不使用外部模块来编写这些数据包 - 外部模块都是用同样的Python语言编写的,而你只是在重新发明轮子。 - Nick Bastin
你想要制作什么类型的数据包? - Daniel Stutzbach
手工制作的SYN数据包总是需要root权限。这是无法避免的。打开TCP连接将发送一个SYN数据包,所以我想你可以打开和关闭许多TCP连接,但你不会对SYN数据包的内容有很多控制,并且你也不能以很快的速度发送它们。 - Daniel Stutzbach
2个回答

2

1

许多操作系统(Linux)不允许使用原始套接字,除非您的有效用户ID为0(也称为root)。这不是库问题。一些操作系统(非服务器Windows XP SP2之后的版本)根本不允许创建原始套接字。

您可以通过在系统上运行man 7 raw来了解更多关于原始套接字的信息。请注意,所有套接字选项都可以使用Python套接字模块传递。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接