如何获取局域网内的IP地址
有的时候需要根据IP或MAC来限定登录的计算机,请问如何来获取局域网中的IP地址呢? --------------------编程问答-------------------- 1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName
获取用户信息:Page.User
获取客户端电脑名:Page.Request.UserHostName
获取客户端电脑IP:Page.Request.UserHostAddress
2. 在网络编程中的通用方法:
获取当前电脑名:static System.Net.Dns.GetHostName()
根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList
也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(IP地址).HostName
3. 系统环境类的通用属性:
当前电脑名:static System.Environment.MachineName
当前电脑所属网域:static System.Environment.UserDomainName
当前电脑用户:static System.Environment.UserName --------------------编程问答-------------------- 可能是我没有说清楚,我们公司是局域网,现在想对公司员工登陆网站时限制每个人的权限,所以需要一个唯一的标志符,如IP或MAC,当员工登陆时,取得员工计算机的内网IP地址,从而进行判断他的权限。哪位有高见,请多多发表啊,如果有完整代码 最好。 --------------------编程问答-------------------- 这么做有点风险啊,IP和MAC地址改变后不久权限全部管用了吗?还是采用功能授权的好啊,兄弟 --------------------编程问答-------------------- 是相应的MAC或IP给他相应的权限,并且还要结合其他判断的,现在的问题是得不到他的内网IP,急哈
不过还是谢谢啦,你的建议我会考虑下的。 --------------------编程问答-------------------- 为什么得不到内网IP了?如果你的网站是放在局域网内的机器,不通过公网登录的,得到的就是内网的IP吧?
但,按你这种做法,IP地址变了怎办? --------------------编程问答-------------------- 我用这个方法去得,
if (Request.ServerVariables["HTTP_VIA"] != null)
{
user_IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
user_IP = Request.ServerVariables["REMOTE_ADDR"].ToString();
}
Response.Write(user_IP);
可是
Request.ServerVariables["HTTP_X_FORWARDED_FOR"]得到的总是NULL
而
user_IP = Request.ServerVariables["REMOTE_ADDR"]得到的是代理服务器的IP地址
--------------------编程问答-------------------- ? --------------------编程问答-------------------- 这些方法我试过了,得到Ip地址是可以的,但想得到MAC地址是比较难的
补充:.NET技术 , ASP.NET