您的位置:首页 > 其它

.Net 获取客户端ip

2008-10-29 09:10 204 查看
为日志添加登陆IP功能,使用page.request.userHostAddress可以实现:

Log.Write(base.User, Convert.ToInt32(LogProject.ProjectStartCancel), string.Format("{0}<br/>{1}撤销了{2}的立项申请", Page.Request.UserHostAddress, base.User.Name, project.Name), "撤销立项申请", Database);

但是,当调用的方法属于webMethod的时候就不能用了。请教了高手才明白,webMethod不属于任何页面,所以不能用上面的方法。因为任何用到reques和response的地方都有一个httpContex,所以我们可以使用HttpContex来获取request,如下:

Log.Write(userName, Convert.ToInt32(LogProject.ProjectEndSubmit), string.Format("{0}<br/>{1}提交了{2}的结项申请", HttpContext.Current.Request.UserHostAddress, userName, project.Name), "提交结项申请", database);

从网上搜了一下.Net获取信息的方法还有:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: