页面限制IP访问?

gzbhappy 2011-01-25 04:08:04
现在我有一个小系统,想增加点功能,限制IP访问,分为外网访问和内网访问,如何做到只内网访问外网不能访问?
还有一个问题就是如何做到限制用户量访问系统?谢谢
...全文
376 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2011-01-25
  • 打赏
  • 举报
回复
获取IP转long判断范围
通过Timer定时查询用户数
System.Net.IPAddress ipaddress = System.Net.IPAddress.Parse("");
long ip= ipaddress.Address;

a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d; 通过basepage,判断用户
ycproc 2011-01-25
  • 打赏
  • 举报
回复
       #region 获取结束IP
private long GetEndIp()
{
//objfs.Seek(endIpOff,SeekOrigin.Begin);
objfs.Position = endIpOff;
byte[] buff = new Byte[5];
objfs.Read(buff, 0, 5);
this.endIp = Convert.ToInt64(buff[0]) + Convert.ToInt64(buff[1]) * 256 + Convert.ToInt64(buff[2]) * 256 * 256 + Convert.ToInt64(buff[3]) * 256 * 256 * 256;
this.countryFlag = buff[4];
return this.endIp;
}
#endregion

#region 获取国家/区域偏移量
private string GetCountry()
{
switch (this.countryFlag)
{
case 1:
case 2:
this.country = GetFlagStr(this.endIpOff + 4);
this.local = (1 == this.countryFlag) ? " " : this.GetFlagStr(this.endIpOff + 8);
break;
default:
this.country = this.GetFlagStr(this.endIpOff + 4);
this.local = this.GetFlagStr(objfs.Position);
break;
}
return " ";
}
#endregion

#region 获取国家/区域字符串
private string GetFlagStr(long offSet)
{
int flag = 0;
byte[] buff = new Byte[3];
while (1 == 1)
{
//objfs.Seek(offSet,SeekOrigin.Begin);
objfs.Position = offSet;
flag = objfs.ReadByte();
if (flag == 1 || flag == 2)
{
objfs.Read(buff, 0, 3);
if (flag == 2)
{
this.countryFlag = 2;
this.endIpOff = offSet - 4;
}
offSet = Convert.ToInt64(buff[0].ToString()) + Convert.ToInt64(buff[1].ToString()) * 256 + Convert.ToInt64(buff[2].ToString()) * 256 * 256;
}
else
{
break;
}
}
if (offSet < 12)
return " ";
objfs.Position = offSet;
return GetStr();
}
#endregion

#region GetStr
private string GetStr()
{
byte lowC = 0;
byte upC = 0;
string str = "";
byte[] buff = new byte[2];
while (1 == 1)
{
lowC = (Byte)objfs.ReadByte();
if (lowC == 0)
break;
if (lowC > 127)
{
upC = (byte)objfs.ReadByte();
buff[0] = lowC;
buff[1] = upC;
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("GB2312");
str += enc.GetString(buff);
}
else
{
str += (char)lowC;
}
}
return str;
}
#endregion

#region 获取IP的地理地址
/// <summary>
/// 获取IP的地理地址
/// </summary>
/// <returns></returns>
public string IPLocation()
{
this.QQwry();
return this.country + this.local.Replace("CZ88.NET", "");//删除垃圾信息
}
/// <summary>
/// 获取IP的地理地址
/// </summary>
/// <param name="dataPath"></param>
/// <param name="ip"></param>
/// <returns></returns>
public string IPLocation(string dataPath, string strip)
{
this.dataPath = dataPath;
this.ip = strip;
this.QQwry();
return this.country + this.local.Replace("CZ88.NET", "");//删除垃圾信息
}
/// <summary>
/// 获取IP的地理地址,专门給统计系统用的
/// </summary>
/// <param name="strip"></param>
/// <returns></returns>
public string IPCountry(string strip)
{
this.ip = strip;
this.QQwry();
return this.country;
}
public string IPLocal(string strip)
{
this.ip = strip;
this.QQwry();

if (this.local == null)
return "";
return this.local.Replace("CZ88.NET", "");//删除垃圾信息
}
gzbhappy 2011-01-25
  • 打赏
  • 举报
回复
我是想用程序来实现,不想配置IIS来实现
nocallstle 2011-01-25
  • 打赏
  • 举报
回复
可以根据判断登录的IP,若IP地址为服务器地址或回环口地址则为内网地址,否则为外地址
子夜__ 2011-01-25
  • 打赏
  • 举报
回复
问题一 可以配置IIS 、 也可以传送门

问题二 也是配置IIS 最大访问人数

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧