sll_protocol: 标准以太网协议类型,按网络字节顺序。定义在中。 sll_ifindex: interface索引,0 匹配所有的网络接口卡; sll_hatype: ARP 硬件地址类型(hardware address type) 定义在中,常用 ARPHRD_ETHER sll_pkttype: 包含了packet类型。 sll_addr: 物理层地址 ssl_halen: 物理层地址长度 当发送数据包时,指定...
1.创建原始套接字具体格式如下:int sockfd;sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP...
PACK_HOST 包地址为本地主机地址。PACK_BROADCAST 物理层⼴播包。PACK_MULTICAST 发送到物理层多播地址的包。PACK_OTHERHOST 发往其它在混杂模式下被设备捕获的主机的包。PACK_OUTGOING 本地回环包;sll_addr 和 ssl_halen 包含了物理层地址和其长度;
SOCKADDR_LL_COMPAT) || (saddr->sll_hatype == ARPHRD_INFINIBAND)) + goto out; + } ifindex = saddr->sll_ifindex; proto = saddr->sll_protocol; addr = saddr->sll_addr; @@ -937,7 +940,9 @@ static int packet_bind(struct socket *so */ if (addr_len < sizeof(struct sockaddr_...
sll->sll_ifindex); | ^~~~ /usr/src/php/ext/sockets/sockets.c: In function 'zif_socket_bind': /usr/src/php/ext/sockets/sockets.c:1398:35: error: invalid use of undefined type 'struct sockaddr_ll' 1398 | sa->sll_ifindex = if_nametoindex(addr); | ^~ /usr/src/php/ext/sockets...
sll_addr和ssl_halen包含了物理层地址和其长度; 当发送数据包时,指定 sll_family, sll_addr, sll_halen, sll_ifindex, sll_protocol 就足够了。其它字段设置为0; sll_hatype和 sll_pkttype是在接收数据包时使用的; 如果要bind, 只需要使用 sll_protocol和 sll_ifindex;...