获取访问者IP:string ip=Request.UserHostAddress.ToString();
/// <summary>
/// IP访问控制
/// </summary>
/// <param name="arrAllowIps">允许访问IP段</param>
/// <param name="arrDenyIps">禁止访问IP段</param>
/// <param name="ip">访问IP</param>
/// <returns>返回BOOL值(true:允许访问!false:不允许访问!)</returns>
public static bool ValidatorIP(string[] arrAllowIps,string[] arrDenyIps,string ip)
{
long curIp = GetIpNum(ip);
bool bAccess = true;
if (arrDenyIps.Length != 0)
{
for (int j = 0; j < arrDenyIps.Length; j++)
{
string[] denyIps = arrDenyIps[j].Split('~');
long startAllowIp = GetIpNum(denyIps[0]);
long endAllowIp = GetIpNum(denyIps[1]);
if (curIp >= startAllowIp && curIp <= endAllowIp)
{
bAccess = false;
return bAccess;
}
}
}
if (arrAllowIps.Length != 0) {
for (int i = 0; i < arrAllowIps.Length; i++)
{
string[] allowIps = arrAllowIps[i].Split('~');
long startAllowIp = GetIpNum(allowIps[0]);
long endAllowIp = GetIpNum(allowIps[1]);
if (curIp >= startAllowIp && curIp <= endAllowIp)
{
bAccess = true;
return bAccess;
}
}
}
return bAccess;
}
private static long GetIpNum(string ipAddress)
{
string[] ip = ipAddress.Split('.');
long a = int.Parse(ip[0]);
long b = int.Parse(ip[1]);
long c = int.Parse(ip[2]);
long d = int.Parse(ip[3]);
long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
return ipNum;
}