我正在考虑使用此代码来阻止访问我的 asp.net mvc 应用程序中的公共方法:
/// <summary>
/// Comma seperated string of allowable IPs with masks. Example "10.2.0.0;255.255.0.0,10.3.0.0;255.255.0.0"
/// </summary>
/// <value>The masked Ips.</value>
public string AllowedMaskedIPs { get; set; }
摘录自这里。
但我很好奇,屏蔽 IP 和单个 IP 之间有什么区别?基本上,什么是屏蔽 IP?
答案1
您提到的上下文中的掩码 IP 是一个网络范围,即网络地址加上其子网掩码。使用它来匹配特定网络中的所有 IP 地址。
您发布的链接中的示例:
10.2.0.0;255.255.0.0,CIDR 表示法:10.2.0.0/16
% ipcalc 10.2.0.0/255.255.0.0
Address: 10.2.0.0 00001010.00000010. 00000000.00000000
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111
=>
Network: 10.2.0.0/16 00001010.00000010. 00000000.00000000
HostMin: 10.2.0.1 00001010.00000010. 00000000.00000001
HostMax: 10.2.255.254 00001010.00000010. 11111111.11111110
Broadcast: 10.2.255.255 00001010.00000010. 11111111.11111111
Hosts/Net: 65534 Class A, Private Internet
给出的示例匹配 10.2.0.0 和 10.2.255.255 之间(包括)的所有主机。
请参阅维基百科文章子网划分以获得更详细的解释。
答案2
单个 IP 类似于带掩码的 IP,其掩码为 255.255.255.255 或 CIDR 表示法中的 /32。
在这种情况下,屏蔽 IP 是子网定义。
10.2.0.0;255.255.0.0
表示 10.2.0.0/16 是从 10.2.0.0 到 10.2.255.255 的所有地址(包括网络和广播地址)