我需要一种方法来遍历两个IPv6地址之间的地址范围。即,如果第一个IP是
对于IPv4,我只需使用字符串表示的
简化问题:
2a03:6300:1:103:219:5bff:fe31:13e1
,第二个IP是2a03:6300:1:103:219:5bff:fe31:13f4
,我想访问该范围内的19个地址。对于IPv4,我只需使用字符串表示的
inet_aton
并获取结果结构体中s_addr
的htonl
即可,但是如何处理IPv6?简化问题:
struct in6_addr sn,en;
long i;
s="2a03:6300:1:103:219:5bff:fe31:13e1";
e="2a03:6300:1:103:219:5bff:fe31:13f4";
inet_pton(AF_INET6,s,&sn);
inet_pton(AF_INET6,e,&en);
[..]
for (i = _first_ipv6_representation; i<=_second_ipv6_representation; i++){
/* stuck here */
}
s
和e
存储在可循环的东西中吗?还是您想比较这两个地址? - user7116s
和e
都存储在一个可以循环的东西中。 - AmiGO