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;
}
/// <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;
}
相关文章推荐
- Web Service安全控制之——访问IP限制
- nginx ip限制访问控制
- Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫
- Apache2.4使用require指令进行访问控制–允许或限制IP访问/通过User-Agent禁止不友好网络爬虫
- Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫
- Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫 从Apache2.2升级到Apache2.4后,发现原来用来限制部分I
- IIS后台文件限制IP访问
- Apache中限制和允许特定IP访问
- ipset-linux防火墙的扩展实现对指定ip的限制访问
- 利用IP扩展访问列表实现应用服务的访问限制
- 在网吧上网,ip被限制了访问
- sqlserver2008r2数据库使用触发器对sa及其他数据库账号访问进行IP限制
- PHP IP及IP段进行访问限制的代码
- 限制IP 访问 Oracle 的方法
- windows sever 2008 r2 - 限制ip访问
- 限制特定IP访问数据库
- nginx限制某个IP同一时间段的访问次数
- Apache限制IP访问
- .htaccess ip 目录访问限制 apache ip限制目录访问 网站目录IP限制访问
- Nginx中如何限制某个IP同一时间段的访问次数