gpt4 book ai didi

linux - 从 sk_buff 的网络 header 确定数据包是 ipv4 还是 ipv6

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:50 24 4
gpt4 key购买 nike

我有类型为“struct sk_buff”的 SKB,我试图确定数据包是 IPv4 还是 IPv6 类型。基本上我需要源 IP 地址,但不知道如何检查 iph 或 ipv6h 中的“版本”字段,或者不知道它是否是检查“版本”值的可靠方法。

我机器上 sk_buff 实现中的网络头是:

union {
struct iphdr *iph;
struct ipv6hdr *ipv6h;
struct arphdr *arph;
unsigned char *raw;
} nh;

iphdr 和 ipv6hdr 有通常的定义。

如何从sk_buff中的IP网络头判断IP版本?

最佳答案

出于这个原因,无论是 ipv4 还是 ipv6,IP 版本号都编码在数据包的前 4 位中。使用 ipv4 指针 (ipv) 并检查 version 字段。

关于linux - 从 sk_buff 的网络 header 确定数据包是 ipv4 还是 ipv6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28117754/

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