当前位置:编程学习 > C#/ASP.NET >>

急!急!急!获取访问网站的用户的ip

我用VS2005帮大学的一个学院做了一个网站,该网站只允许该学院的人登陆(对访问网站的ip进行限制),但是运行后发现,我获取的用户IP地址都是一样的,都是218.0.4.167,导致学院内部的人也被限制访问,这是为什么??很急,希望个为帮忙解决~~ --------------------编程问答-------------------- Request.ServerVariables("Path_Info")  --------------------编程问答-------------------- 因为学校都是校园网,用同一个IP!

--------------------编程问答-------------------- Request.ServerVariables.Get("Local_Addr").ToString();  //这是得到用户IP地址 --------------------编程问答-------------------- 那怎么办? --------------------编程问答-------------------- 用同一IP?

一个学校就一个IP? --------------------编程问答--------------------  Request.UserHostAddress; --------------------编程问答-------------------- 学校用的是内网,学生上网都是用的代理   你获取的都是对外的IP地址   --------------------编程问答-------------------- 禁止外网访问不就完了! --------------------编程问答-------------------- 那就是先获取IP。。再和内网IP或本机IP比较?

如果是在范围内就通过。。不是就阻止?

这种真还没搞过。。。只是个建议 --------------------编程问答-------------------- 补充一下:其它IP访问要用户名和密码登陆,希望大家能给个代码~~ --------------------编程问答--------------------
引用 9 楼 porschev 的回复:
那就是先获取IP。。再和内网IP或本机IP比较?

如果是在范围内就通过。。不是就阻止?

这种真还没搞过。。。只是个建议

对,怎么弄,大家给个代码,外分感谢~ --------------------编程问答--------------------
引用 7 楼 xrongzhen 的回复:
学校用的是内网,学生上网都是用的代理 你获取的都是对外的IP地址

那怎么获取对内的IP地址~ --------------------编程问答-------------------- --------------------编程问答-------------------- 知道要访问的IP区域就可以了..做数据处理.

取1,2,3,4,这4段来

一般是前2段会相同的.之后3,4应是有一个有效范围的.你处理一下就可以了. --------------------编程问答-------------------- 都是用这个IP做为代理上去的 --------------------编程问答-------------------- --------------------编程问答-------------------- 关注一下…… --------------------编程问答-------------------- 呵呵!你到底是想要怎样呢?呵呵! --------------------编程问答-------------------- ip的事有时候还真是麻烦 --------------------编程问答-------------------- 这个我做过的
如果你的程序是在学校的服务器上运行,你直接就是把学校的内网IP范围和用户登录后获得的ip进行比较HttpContext.Current.Request.UserHostAddress.ToString(),如果你还想让外网的某个公司访问,你可以把那个公司的外网ip加进来,大致的代码如下面

string IP = "";//只允许访问的ip地址,可以用逗号分隔,例如:192.168.1.*,232.100.20.10
string[] IpArray = IP.Split(',');//把ip写入数组
foreach (string eachIp in IpArray)
{
if (eachIp.Trim().Substring(0, 10).ToString() == HttpContext.Current.Request.UserHostAddress.Substring(0, 10).ToString() || HttpContext.Current.Request.UserHostAddress.ToString() == eachIp.Trim().ToString())//这个主要是判断访问的Ip是否在可以访问ip的范围
                        {
}
}

--------------------编程问答-------------------- 还是获取mac地址要好点吧。 --------------------编程问答--------------------
引用 20 楼 pl_0803 的回复:
这个我做过的
如果你的程序是在学校的服务器上运行,你直接就是把学校的内网IP范围和用户登录后获得的ip进行比较HttpContext.Current.Request.UserHostAddress.ToString(),如果你还想让外网的某个公司访问,你可以把那个公司的外网ip加进来,大致的代码如下面

C# code

string IP = "";//只允许访问的ip地址,可以用逗号……

你的这个有个前提,就是校园网的用户访问不用代理,可以直接获取 本地ip
如果用代理了 获取的还是代理的ip
lz的问题 你就判断代理ip就是了,同代理ip的不都是校园网环境下的吗
--------------------编程问答-------------------- 而且 校园网环境下大都是动态获取ip地址 ,你怎么区分a学院还是b学院 除非 每个学院都有固定的ip段。 --------------------编程问答--------------------
引用 23 楼 ptpa 的回复:
而且 校园网环境下大都是动态获取ip地址 ,你怎么区分a学院还是b学院 除非 每个学院都有固定的ip段。

每个学院都有固定的IP段~~ --------------------编程问答--------------------
引用 21 楼 andyxl 的回复:
还是获取mac地址要好点吧。

怎么弄? --------------------编程问答--------------------
引用 23 楼 ptpa 的回复:
而且 校园网环境下大都是动态获取ip地址 ,你怎么区分a学院还是b学院 除非 每个学院都有固定的ip段。

那怎样获得用户真实的IP?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,