当前位置:  开发笔记 > 编程语言 > 正文

如何在Perl中使用原始套接字?

如何解决《如何在Perl中使用原始套接字?》经验,为你挑选了3个好方法。

如何在Perl中获得原始套接字,然后构建与其一起使用的数据包的最佳方法是什么?



1> paxos1977..:

与在C中执行的方式相同...通过在创建套接字时设置套接字类型.

在CPAN上的示例中,使用SOCK_RAW而不是SOCK_DGRAM(UDP)或SOCK_STREAM(TCP).

注意:创建原始套接字通常需要管理权限(即UNIX上的root).Windows操作系统可能已禁用创建原始套接字的功能,您只需测试并查看即可.



2> zigdon..:

也许搜索CPAN可能会有所帮助? 想到IO :: Socket.


如果您知道自己在做什么,那么您应该可以使用IO :: Socket构造函数的socktype和protocol参数来完成它.

3> Liudvikas Bu..:

起初我以为大多数先前的答案都没有回答这个问题.经过进一步思考,我认为作者可能没有提出正确的问题.

如果您正在编写应用程序,通常不会想到"构建数据包".你只需打开套接字,格式化数据有效负载,它就是用你的数据构建数据包的协议栈.好的,如果您正在使用数据报,则需要定义,生成和解析有效负载.但是您通常让内核将其封装在网络级别(例如添加IP头)或链接层(例如添加以太网帧).你通常不使用pcap.有时只需打包和拆包,也许vec就足够了.

如果你正在编写一个不寻常的数据包处理器,如主动恶意攻击工具,中间人进程或流量整形设备,那么就更有可能"构建数据包"并使用pcap.也许Net :: Packet也适合你.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有