gpt4 book ai didi

c# - 如果 IP 在 IP 范围之间,则限制 IP

转载 作者:太空狗 更新时间:2023-10-30 00:02:24 34 4
gpt4 key购买 nike

好的,现在是星期五下午,我度过了漫长的一周,希望能得到一些帮助!目前,我有一个 IP 范围列表,如下所示:

List<IPRange> ipRanges = new List<IPRange>();

ipRanges.Add(new IPRange { From = "145.36.0.0", To = "145.36.255.255" });
ipRanges.Add(new IPRange { From = "194.183.227.184", To = "194.183.227.191" });
ipRanges.Add(new IPRange { From = "193.131.192.0", To = "193.131.223.255" });

在获取到客户端的 IP 后,如果它落在这组范围之间,则需要将它们重定向到其他地方。

例如,

如果有人使用 IP 192.168.0.1 访问该站点,他们将被允许访问。如果他们使用 145.36.1.0 访问,他们将不会被允许访问,因为它位于该列表的第一个范围内。

我可以按时间段拆分每个 IP,找出范围开始变化的位置,然后进行比较,但这对服务器来说会很重。

我知道 IP 基本上只是十进制数字,但我不太确定它是如何工作的。

有人遇到过这个吗?

干杯,肖恩。

最佳答案

转换每个 IP 地址 to number , 然后检查用户 ip 地址是否在这些数字之间。

public double Dot2LongIP(string DottedIP)
{
int i;
string [] arrDec;
double num = 0;
if (DottedIP == "")
{
return 0;
}
else
{
arrDec = DottedIP.Split('.');
for(i = arrDec.Length - 1; i >= 0 ; i --)
{
num += ((int.Parse(arrDec[i])%256) * Math.Pow(256 ,(3 - i )));
}
return num;
}
}

关于c# - 如果 IP 在 IP 范围之间,则限制 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1614003/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com