gpt4 book ai didi

c++ - 为什么将套接字绑定(bind)到接口(interface)失败?

转载 作者:行者123 更新时间:2023-11-30 03:23:04 25 4
gpt4 key购买 nike

我正在尝试打开一个原始套接字并将我的无线接口(interface)绑定(bind)到它。这是我正在使用的代码:

//opening socket
if ((sockfd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1){
//if socket fails give error
perror("socket");
}

//binding socket to interface
if (setsockopt(sockfd, SOL_SOCKET, SO_BINDTODEVICE, "wlp0s19f2u3", 4) < 0)
perror("SIOCGIFHWBIND");

但是当使用 sudo 编译和运行时,我得到一个“SIOCGIFHWBIND:没有这样的设备”
我首先想到这是因为我没有拼写接口(interface)名称,但我的 iwconfig 输出是:

wlp0s19f2u3  IEEE 802.11  Mode:Monitor  Frequency:2.462 GHz  Tx-Power=20 dBm 

这不是监控模式的问题,因为在我的无线网卡处于托管模式时运行代码会提供相同的输出,我需要接口(interface)处于监控模式。
请帮忙,祝你有美好的一天!

最佳答案

感谢 Mark Setchell,原来 4 来自示例代码,他们使用了类似“eth0”的东西,它有 4 个字符。因此,用接口(interface)的 strlen() 替换 4 效果很好。再次感谢。

关于c++ - 为什么将套接字绑定(bind)到接口(interface)失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50666356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com