如何解决捕获原始套接字数据和 rospy
我正在开发一个 Python 项目,该项目应该使用 rospy python 模块捕获原始 UDP 包、解码它们并将解码后的数据发布到 ROS 主题中。为了捕获网络包,我使用了 Scapy。
问题是,
为了使用 Scapy 创建原始套接字,我必须使用 sudo 运行我的 py 文件;然而, 为了导入 rospy,我不得用 sudo 运行我的 py 文件。因此,我无法在单个 Python 脚本中导入和使用这两个模块。
出于性能方面的考虑,我不想将这两个脚本分成两个不同的 Python 脚本并使用文件或数据库在彼此之间传递数据。
到目前为止,我已经尝试过这个,来自 link :
setcap cap_net_raw=eip /usr/bin/python3.5
setcap cap_net_raw=eip /usr/bin/tcpdump
此后,我可以在没有root权限的情况下使用Scapy,但由于某些原因,ROS安装已损坏,因此这也不是解决方案。
我该如何解决这个问题?有什么建议吗?
我在 Ubuntu 16.04 上使用 Python 3.5
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。