Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to log Client IP Address and Machine Name in ASP.NET

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.

like image 510
user3264676 Avatar asked Nov 30 '22 11:11

user3264676


2 Answers

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?

like image 50
Sam Avatar answered Dec 04 '22 02:12

Sam


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

like image 37
tarzanbappa Avatar answered Dec 04 '22 04:12

tarzanbappa