I am developing a Web Application in ASP.net, which requires login name and password.
I want to log IP Address and Machine Name of client, who are accessing this Web Application.
I am using log4net for logging.
I have tried this piece of code, but I am getting Server Machine HostName in log after deploying this web application using IIS-7 instead of Client Machine Name.
Login Page Page_Load
Method:
protected void Page_Load(object sender, EventArgs e)
{
log4net.GlobalContext.Properties["Hostname"] = Dns.GetHostName();
}
Web.Config Changes:
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %property{Hostname} [%thread] %-5level %logger - %message%newline" />
</layout>
Its really huge project, So Please suggest me the way which requires minimum changes in Code to log the IP Address and Machine Name of Client.
Did you try using following?
Request.UserHostAddress
Request.UserHostName
Refer to following answer posted on a different thread
Get client's IP address and computer name?
Try For Client Computer name..
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();
For Client IP address..
Request.ServerVariables["REMOTE_ADDR"]
Check this also... https://stackoverflow.com/a/19286308/3156647
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With