您的位置:首页 > 其它

IP限制访问控制

2009-05-15 09:12 288 查看
获取访问者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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: