![]() |
1
7
就像你在C中做的那样…通过在创建套接字时设置套接字类型。 在上的示例中 CPAN 使用 索克生 而不是 Sokkgdg (UDP)或 Sok溪 (TCP)。 注意:创建原始套接字通常需要管理权限(即UNIX上的根目录)。Windows操作系统可能已经禁用了创建原始套接字的功能,您只需测试并查看即可。 |
![]() |
2
6
也许是搜索 CPAN 有帮助吗? IO::Socket 浮现在脑海中。 |
![]() |
3
5
起初,我认为大多数以前的答案对这个问题没有反应。 经过进一步的思考,我认为作者可能没有提出正确的问题。 如果您正在编写应用程序,通常不会想到“构建数据包”。您只需打开套接字,格式化数据负载,它是用您的数据构建数据包的协议栈。好的,如果您正在使用数据报,那么您需要定义、生成和分析您的有效负载。但您通常允许内核在网络级别(例如,添加IP头)或链路层(例如,添加以太网帧)封装它。你通常不使用PCAP。有时候只需要打包和解包,也许vec就足够了。 如果你正在写一个不寻常的包处理器,比如一个活跃的恶意攻击工具,一个处于中间进程的人,或者一个流量整形设备,那么你更有可能正在“构建包”并使用PCAP。也许网:包也是给你的。 |
![]() |
4
4
正如Austig和其他人所说,Socket可以做到这一点:
|
![]() |
5
4
看起来像 Net::RawIP 是我想要的:
|
![]() |
6
1
获取套接字的基本调用是…SoCK()它是Perl5的标准配置。Perl5基本上提供了传统Unix所做的标准socket()、bind()、listen()、accept()调用。 对于更面向对象的模型,请检查IO::Socket。 |
![]() |
7
-1
请注意,如果您试图使用原始套接字发送一堆SYN数据包,而您只是“使用套接字”;这将填充您的ARP表,并用“没有可用缓冲空间”和“netstat”中的一堆“close-wait”(关闭等待)条目进行轰炸(这将停止您的机器进行任何类型的连接,直到其中一些释放)。 或者换句话说——你确实需要net::rawip——这会有所不同。 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
BioRod · 我不能用Perl打印键和值 3 年前 |
![]() |
user17227456 · Perl CLI代码无法追加字符串行 3 年前 |
![]() |
LearnToBeBetter · 读取文件,搜索字符串,打印字符串 3 年前 |
![]() |
KJ7LNW · 一些波斯语文本的宽字符印刷,但其他文本则没有 3 年前 |
![]() |
con · 如何搜索大型数据结构并返回一系列给出特定值的键/数组? 3 年前 |
![]() |
Pranay Nanda · 使用regex解析许可证文件 7 年前 |