我正在编写一个程序,需要遍历由用户提供的CIDR(例如
我看了一些代码,例如这个,但那看起来有点复杂。
最后,我决定使用类似下面这样的结构体:
75.24.64.0/24
)得出的地址列表。我看了一些代码,例如这个,但那看起来有点复杂。
最后,我决定使用类似下面这样的结构体:
struct ip_iterator {
unsigned int netmask;
int bitcount;
long long num_total;
long long num_left;
int current_ip[4];
};
我可以定义ip_iterator_init
,ip_iterator_next
和ip_iterator_is_finished
函数。然而,我卡在了如何从cidr到第一个IP的转换上。我以前学过网络数学,但自从获得证书后,我一直在使用在线计算器。