Tag: cidr

子网中的所有IP(C)

有人有一个很好的例子,我可以使用CIDR(如192.168.1.1/24获取IP地址,并返回该范围内的所有IP地址,如192.168.1.1, 192.168.1.2, 192.168.1.3 … 我很好用它返回一个unsigned long ,一个char或类似的东西 /* Pseudocode */ while(currnetip <= finalip) { print(currnetip); currnetip++; } 只要我能理解它就好了。 如果您认为它可以帮助我,请随意评论一个post的链接。 编辑:可能值得一提的是我发现了许多计算广播地址的东西,我只是不确定如何将所有这些function链接在一起。

从IP范围转换为CIDR掩码

我一直在研究一种算法,用于将IP范围转换为CIDR表示法中的列表IP(将在下文中作为元组提及)。 现在,令我困惑的是弄清楚这种转换的最坏情况场景是什么; 我可以获得IPv4范围的最大元组数是多少? 我可以为IPv6范围获得的最大元组数是多少? 这怎么算?erp 我正在使用以下Python脚本的修改过的C版本(不是递归的): 1 #!/usr/bin/env python 2 3 import sys 4 import re 5 6 def ip2int(ip) : 7 ret = 0 8 match = re.match(“(\d*)\.(\d*)\.(\d*)\.(\d*)”, ip) 9 if not match : return 0 10 for i in xrange(4) : ret = (ret <> 24 15 ip2 = ipnum >> 16 & […]

IP cidr匹配function

我需要找出来,是ip属于ip mask。 例如: ip = 192.168.0.1 mask = 192.168.0.1/24。 我找到了将ip转换为mask的函数: inet_cidrtoaddr(int cidr, struct in_addr *addr) { int ocets; if (cidr 32) { errno = EINVAL; return -1; } ocets = (cidr + 7) / 8; addr->s_addr = 0; if (ocets > 0) { memset(&addr->s_addr, 255, (size_t)ocets – 1); memset((unsigned char *)&addr->s_addr + (ocets – 1), […]