我们正在编写一项功能,允许管理员阻止/允许 IP 地址范围。
用 c# 可以很容易做到这一点吗?
我正在考虑查看每个数字[这里]。[这里]。[这里]。[这里],然后用范围进行数学计算,看看每个数字是否在两者之间?
这适用于标准 ipv4 地址吗?
我将它们转换为整数,然后比较整数。但什么是正确的取决于您如何定义范围。
UInt32 Ip4ToInt(string ip)
{
UInt32[] parts=ip.Split('.').Select(s=>UInt32.Parse(s)).ToArray();
if (parts.Length != 4)
throw new ArgumentException("InvalidIP");
return (parts[0]<<24) | (parts[1]<<16) | (parts[2]<<8) | parts[3];
}
例如应该1.1.1.99
属于范围的一部分1.1.1.1 - 1.1.2.2
?当比较每个组时,它不是,当比较整数时,它是。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)