如何在ASP.net中记录客户端IP地址和计算机名称

use*_*676 4 c# asp.net log4net iis-7

我正在ASP.net中开发一个Web应用程序,它需要登录名和密码.

我想记录正在访问此Web应用程序的客户端的IP地址和计算机名称.

我正在使用log4net进行日志记录.

我尝试过这段代码,但是在使用IIS-7而不是客户机名称部署此Web应用程序后,我在日志中获得了Server Machine HostName.

Login Page Page_Load 方法:

protected void Page_Load(object sender, EventArgs e)
{
    log4net.GlobalContext.Properties["Hostname"] = Dns.GetHostName();
}
Run Code Online (Sandbox Code Playgroud)

Web.Config更改:

 <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %property{Hostname} [%thread] %-5level %logger - %message%newline" />
 </layout>
Run Code Online (Sandbox Code Playgroud)

这是一个非常庞大的项目,所以请建议我在Code中记录客户端IP地址和机器名的最小变化.

Sam*_*Sam 15

你尝试过使用以下吗?

Request.UserHostAddress

Request.UserHostName
Run Code Online (Sandbox Code Playgroud)

请参阅以下在不同主题上发布的答案

获取客户端的IP地址和计算机名称?


tar*_*ppa 5

尝试为客户端计算机名称。

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();
Run Code Online (Sandbox Code Playgroud)

对于客户端IP地址。

Request.ServerVariables["REMOTE_ADDR"]
Run Code Online (Sandbox Code Playgroud)

还要检查一下... /sf/answers/1350041591/