检查IP地址是否存在于范围内

时间:2017-03-03 08:44:05

标签: c# asp.net-mvc asp.net-web-api ip

我想创建扩展方法,即检查发送的IP地址

指定至少一个发出请求的IP地址。来自其他IP的所有请求 地址被拒绝。可以授予访问权限:

  • 单个IP地址(例如192.168.0.2)

  • 多个IP地址,以空格分隔(例如192.168.0.2 10.0.0.2)

  • CIDR表示法中的子网(例如192.168.0.0/24)

在文本字段中输入IP列表或至少一个IP地址(或IP范围) 相应的部分。

下面的代码是使用但不起作用

public static bool IsIpAddressAllowed(this string clientAddress, string allowedIpRange)
    {
        return IsInRange(clientAddress, allowedIpRange, allowedIpRange); ;
    }




 public static bool IsInRange(string startIpAddr, string endIpAddr, string address)
    {
        long ipStart = BitConverter.ToInt32(IPAddress.Parse(startIpAddr).GetAddressBytes().Reverse().ToArray(), 0);

        long ipEnd = BitConverter.ToInt32(IPAddress.Parse(endIpAddr).GetAddressBytes().Reverse().ToArray(), 0);

        long ip = BitConverter.ToInt32(IPAddress.Parse(address).GetAddressBytes().Reverse().ToArray(), 0);

        return ip >= ipStart && ip <= ipEnd; //edited
    }

0 个答案:

没有答案