Chinaunix
标题:
如何区分是ipv4的地址还是ipv6的地址
[打印本页]
作者:
tourer
时间:
2007-11-15 21:21
标题:
如何区分是ipv4的地址还是ipv6的地址
ipv4的地址可以表示成无符号32位整数,ipv6是否也可以表示为无符号32位整数。
如果可以ipv4和ipv6都可以表示成32位无符号整数,那么如何区分它们
作者:
tourer
时间:
2007-11-15 21:55
顶一下,没人可以解答吗?
还是我问的问题不够清楚?
作者:
win_hate
时间:
2007-11-15 22:03
v6 的地址是 128 位的
作者:
dxcnjupt
时间:
2007-11-16 09:03
ipv6貌似是40字节长度的
另外在IP头里面有一个字段是表示IP版本号的
作者:
cugb_cat
时间:
2007-11-16 09:24
ipv6如果还是32位,那怎么能扩大地址范围呢?
作者:
tourer
时间:
2007-11-16 09:43
在glibc中是这样定义的
/* IPv6 address */
struct in6_addr
{
union
{
uint8_t u6_addr8[16];
uint16_t u6_addr16[8];
uint32_t u6_addr32[4];
} in6_u;
#define s6_addr in6_u.u6_addr8
#define s6_addr16 in6_u.u6_addr16
#define s6_addr32 in6_u.u6_addr32
};
看来是128位的
作者:
tourer
时间:
2007-11-16 09:44
那是不是只能根据长度来区分
作者:
dxcnjupt
时间:
2007-11-16 14:35
哦,我没看清楚
地址确实是128位的
我说的是IP包头长度40字节
3. IPv6 首部格式
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本 | 传输类别 | 数据流标签 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 有效载荷长度 | 下一个首部 | 跳数限制 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ 源 地 址 +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ 目 的 地 址 +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
版本占4 比特
IPV6协议号 = 6
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2