我正在ASP.net中开发一个Web应用程序,它需要登录名和密码。
我想记录访问此Web应用程序的客户端的IP地址和机器名称。
我使用log4net进行日志记录。
我已经尝试过这段代码,但是在使用IIS-7而不是客户端机器名称部署这个web应用程序之后,我将在日志中获得服务器机器HostName。
Login Page Page_Load方法:
protected void Page_Load(object sender, EventArgs e)
{
log4net.GlobalContext.Properties["Hostname"] = Dns.GetHostName();
}Web.Config更改:
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %property{Hostname} [%thread] %-5level %logger - %message%newline" />
</layout>它非常庞大的项目,所以请建议我的方式,要求最低限度的修改代码,以记录IP地址和机器名称的客户端。
发布于 2014-02-03 06:11:03
你试过用下面的吗?
Request.UserHostAddress
Request.UserHostName请参阅在另一个线程上发布的以下答案
发布于 2014-02-03 06:27:00
尝试使用客户端计算机名..。
string[] computer_name = System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName.Split(new Char[] { '.' });
String ecname = System.Environment.MachineName;
txtComputerName.Text = computer_name[0].ToString();用于客户IP地址..。
Request.ServerVariables["REMOTE_ADDR"]发布于 2016-08-18 21:22:32
Dns.GetHostEntry(log.IPAddress).HostName由于某些原因,其他答案在我的共享主机服务器上不起作用。去想想..。
https://stackoverflow.com/questions/21520725
复制相似问题