如何验证 IP 地址以进行合法访问?我有以下列表:
185.71.76.0/27
185.71.77.0/27
77.75.153.0/25
77.75.156.11
77.75.156.35
77.75.154.128/25
2a02:5180::/32
如您所见,有不同的掩码和协议版本。有些API方法只能从这些地址访问,但不知道如何判断当前IP地址是否合法。
我知道有一个类IPNetwork
,Microsoft.AspNetCore.HttpOverrides
但我不知道如何存储上面的列表以进行验证。
在NuGet中也有一个方便的库IpAddressRange 。 它可以同时执行 IpV4 和 IpV6,包括掩码和范围。
以及如何阻止灰色地址的示例。以此类推,您可以用您的地址填写列表,并以任何其他方便的方式设置中间件或阻止。
通常,IP 阻止或白名单通常在基础设施级别完成 - 例如,在 Nginx 代理中。
Ps @aepot 评论中的选项也不错