Retrieve Http client request metadata like IP address and languages in asp.net core
IP Address
In ASP.NET Core, Request.UserHostAddress
has been removed though that attribute exists in the traditional ASP.NET applications.
We can use HttpContext.Connection to retrieve the remove client IP address:
var ipAddress = HttpContext.Connection.RemoteIpAddress?.ToString();
Note
This IP address may not be the direct IP address of the user. For example, user may use VPN, proxy and etc.
User Agent
Through user agent, we can get users’ browser information.
var userAgent = Request.Headers["User-Agent"];
User Languages
To support localization and globalization, user language is also important. Accept-Language request header can be used for this purpose. However, this attribute is an array and even the element can include multiple languages separated by semi comma. For example, “en-US, en, *”.
var languages = Request.Headers["Accept-Language"];