Did you try using following?
Request.UserHostAddress
Request.UserHostName
Refer to following answer posted on a different thread
Question
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.
Solution
Did you try using following?
Request.UserHostAddress
Request.UserHostName
Refer to following answer posted on a different thread
OTHER TIPS
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
Dns.GetHostEntry(log.IPAddress).HostName
For some reason the other answers didn't work on my shared hosting server. Go figure...
For Client IP:
System.Web.HttpContext.Current.Request.ServerVariables["**REMOTE_ADDR**"];
For Client Hostname:
System.Net.Dns.GetHostEntry(Request.ServerVariables["**REMOTE_HOST**"]).HostName;