Retrieve Http client request metadata like IP address and languages in asp.net core
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();
This IP address may not be the direct IP address of the user. For example, user may use VPN, proxy and etc.
Through user agent, we can get users’ browser information.
var userAgent = Request.Headers["User-Agent"];
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"];