Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get IpAddress and UserAgent in ASP.NET Web API get methods

Tags:

I am using ASP.NET Web Api to expose a few GET methods.

But before I return the data I need to log a couple of details to the db, of which few of them are as listed below :

  • Caller's Ip
  • Caller's User Agent
  • Caller's Used Url

Now in the controller when I used to do this I used to use the following code,

var ipAddress = Request.ServerVariables["REMOTE_ADDR"];
var userAgent = Request.UserAgent;

But here in Web API I am unable to use this.

Can anyone please help me out with this.

like image 635
Yasser Shaikh Avatar asked Jun 28 '13 12:06

Yasser Shaikh


2 Answers

I figured it out,

public static LogModel GetApiLogDetails() {     var logModel = new LogModel();     logModel.TimeStamp   = DateTime.Now;     logModel.CallerIp    = HttpContext.Current.Request.UserHostAddress;     logModel.CallerAgent = HttpContext.Current.Request.UserAgent;     logModel.CalledUrl   = HttpContext.Current.Request.Url.OriginalString;     return logModel; } 

with a little help from

Get Web Api consumer IP Address and HostName in ASP.NET Web API &

Get the IP address of the remote host

like image 139
Yasser Shaikh Avatar answered Sep 22 '22 16:09

Yasser Shaikh


You should use HttpRequestMessage class, that conteins all data you need.

Read more:

  • How to get IP adress
  • Extension methods for HttpRequestMessage
  • MSDN
like image 41
YD1m Avatar answered Sep 20 '22 16:09

YD1m