C# code to convert a network in CIDR notation (72.20.10.0/24) to an IP address range
References: "Whatmask" C code from http://www.laffeycomputer.com/whatmask.html Usage: The code assumes 32 bits for everything.uint startIP, endIP;
Network2IpRange("72.20.10.0/24",out startIP,out endIP); staticvoidNetwork2IpRange(string sNetwork,outuint startIP,outuint endIP)
{
uint ip, /* ip address */
mask, /* subnet mask */
broadcast, /* Broadcast address */
network; /* Network address */
int bits;
string[] elements = sNetwork.Split(newChar[]{'/'});
ip = IP2Int(elements[0]);
bits =Convert.ToInt32(elements[1]);
mask =~(0xffffffff>> bits);
network = ip & mask;
broadcast = network +~mask;
usableIps =(bits >30)?0:(broadcast - network -1);
if(usableIps <=0)
{
startIP = endIP =0;
}
else
{
startIP = network +1;
endIP = broadcast -1;
}
}
publicstaticuint IP2Int(stringIPNumber)
{
uint ip =0;
string[] elements =IPNumber.Split(newChar[]{'.'});
if(elements.Length==4)
{
ip =Convert.ToUInt32(elements[0])<<24;
ip +=Convert.ToUInt32(elements[1])<<16;
ip +=Convert.ToUInt32(elements[2])<<8;
ip +=Convert.ToUInt32(elements[3]);
}
return ip;
}
本日志由 flyinweb 于 2011-01-28 11:15:24 发表,目前已经被浏览 1844 次,评论 0 次;
作者添加了以下标签: CIDR2IPrange,CIDRtoIPrange;
引用通告:http://www.517sou.net/Article/571/Trackback.ashx
而且直接配置文件是效率最高的,通过其它驱动效率都相对较低,BDB
这个测试不太准确,看官方的测试结果:http://bind-dlz.sourceforg
为什么使用BDB时QPS这么低? 我在bind版本基本相似的环境中测试的
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱