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

如何获取局域网内的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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,