今天有个客户要求在内网里限制下访问,根据ip端,自己就粗略写了一些,方法比较笨,不过很实用,代码如下:
//
限制ip段访问
public static bool CheckIp()
{
bool fig = false;
// 首先获得客户端ip
string clientIp = GetIP();
if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.70 ")
{
// 判断最后一位数字的范围
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 255 && lastNum > 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.74 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 191 && lastNum >= 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.75 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 63 && lastNum >= 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.76 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 63 && lastNum >= 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.74 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 191 && lastNum >= 128)
{
fig = true;
}
}
return fig;
}
public static string GetIP()
{
// 优先取得代理IP
string userHostAddress = HttpContext.Current.Request.ServerVariables[ " HTTP_X_FORWARDED_FOR "];
if ( string.IsNullOrEmpty(userHostAddress))
{
// 没有代理IP则直接取客户端IP
userHostAddress = HttpContext.Current.Request.ServerVariables[ " REMOTE_ADDR "];
}
if ((userHostAddress != null) && !(userHostAddress == string.Empty))
{
return userHostAddress;
}
return " 0.0.0.0 ";
}
public static bool CheckIp()
{
bool fig = false;
// 首先获得客户端ip
string clientIp = GetIP();
if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.70 ")
{
// 判断最后一位数字的范围
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 255 && lastNum > 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.74 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 191 && lastNum >= 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.75 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 63 && lastNum >= 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.76 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 63 && lastNum >= 0)
{
fig = true;
}
}
else if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) == " 10.57.74 ")
{
int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") + 1));
if (lastNum <= 191 && lastNum >= 128)
{
fig = true;
}
}
return fig;
}
public static string GetIP()
{
// 优先取得代理IP
string userHostAddress = HttpContext.Current.Request.ServerVariables[ " HTTP_X_FORWARDED_FOR "];
if ( string.IsNullOrEmpty(userHostAddress))
{
// 没有代理IP则直接取客户端IP
userHostAddress = HttpContext.Current.Request.ServerVariables[ " REMOTE_ADDR "];
}
if ((userHostAddress != null) && !(userHostAddress == string.Empty))
{
return userHostAddress;
}
return " 0.0.0.0 ";
}
然后在限制的页面里调用这段代码即可,呵呵,时间关系,没考虑太多,大家可以在简便一些,思路大概就是这样!