首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于gopacket非活动句柄,SetPromisc不会在PROMISC模式下设置接口。

对于gopacket非活动句柄,SetPromisc不会在PROMISC模式下设置接口。
EN

Stack Overflow用户
提问于 2022-09-01 00:55:29
回答 2查看 36关注 0票数 0

如果使用gopacket非活动句柄,则SetPromisc不会在PROMISC模式下设置接口

代码语言:javascript
复制
/sys/devices/virtual/net/bond1/flags

值为0x1403。只有当此值设置为0x1503时,它才能工作。有没有一种方法可以像tcpdump那样将接口设置为PROMISC模式,而不管上面的值如何?

我是新来的,对此的任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

发布于 2022-09-01 06:13:58

杂乱模式在激活pcap_t之前是不会设置的,因此您的程序可能最终会用{the inactive handle}.Activate()激活非活动句柄。如果不这样做,它就不会设置杂乱模式,而不管标志的设置如何。Tcpdump确实调用了pcap_activate() (这就是Activate方法所调用的)。

0x1403和0x1503的区别在于后者具有IFF_PROMISC集。如果您所说的“它只在此值设置为0x1503时才有效”。也就是说,如果您在将标志设置为0x1403时运行您的程序,则接口不会进入混杂模式,但如果您自己将其设置为0x1503,例如将"0x1503“写入/sys/设备/虚拟/net/键1/标志,然后运行您的程序,则该接口处于混杂模式,将其置于混乱状态是将"0x1503”写入/sys/设备/虚拟/net/键1/标志,而不是您的程序--如果程序不激活句柄,它将永远不会起作用。

如果你想让你的程序把界面变成杂乱无章的模式,让它激活句柄。然后,只要激活的句柄打开,接口就会处于混杂模式;一旦关闭,除非其他东西也将接口放入混杂模式,否则接口将退出杂乱模式。

这意味着,如果您的程序退出,接口将走出混乱模式。

票数 0
EN

Stack Overflow用户

发布于 2022-09-14 22:48:32

这并不适用于我正在使用的较旧版本的linux。有了更新的版本,它就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73563287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档