Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET中记录客户端IP地址和计算机名_C#_Asp.net_Iis 7_Log4net - Fatal编程技术网

C# 如何在ASP.NET中记录客户端IP地址和计算机名

C# 如何在ASP.NET中记录客户端IP地址和计算机名,c#,asp.net,iis-7,log4net,C#,Asp.net,Iis 7,Log4net,我正在ASP.net中开发一个Web应用程序,它需要登录名和密码 我想记录访问此Web应用程序的客户端的IP地址和计算机名 我正在使用log4net进行日志记录 我已经尝试过这段代码,但在使用IIS-7而不是客户机名称部署此web应用程序后,我在日志中获得了服务器主机名 登录页面页面加载方法: protected void Page_Load(object sender, EventArgs e) { log4net.GlobalContext.Properties["Hostname"

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

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

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

我已经尝试过这段代码,但在使用IIS-7而不是客户机名称部署此web应用程序后,我在日志中获得了服务器主机名

登录页面页面加载
方法:

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地址和机器名。

您是否尝试使用以下方法

Request.UserHostAddress

Request.UserHostName
请参阅张贴在不同帖子上的以下答案

试试看 用于客户端计算机名

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"]
也检查一下这个。。。

出于某种原因,其他答案在我的共享托管服务器上不起作用。对于客户端IP,请参见图…

System.Web.HttpContext.Current.Request.ServerVariables[“**远程地址**”;
对于客户端主机名:

System.Net.Dns.GetHostEntry(Request.ServerVariables[“**远程主机**”).HostName;

确保承载此应用程序的服务器必须具有TCP/IP配置中DNS服务器的正确条目。的副本
Dns.GetHostEntry(log.IPAddress).HostName