Xin chào, tôi cần lấy IP máy khách yêu cầu một số phương thức trong api web, tôi đã cố gắng sử dụng mã này từ đây nhưng nó luôn trả về IP cục bộ của máy chủ, làm thế nào để lấy đúng cách?
HttpContext.Current.Request.UserHostAddress;
từ các câu hỏi khác:
public static class HttpRequestMessageExtensions
{
private const string HttpContext = "MS_HttpContext";
private const string RemoteEndpointMessage = "System.ServiceModel.Channels.RemoteEndpointMessageProperty";
public static string GetClientIpAddress(this HttpRequestMessage request)
{
if (request.Properties.ContainsKey(HttpContext))
{
dynamic ctx = request.Properties[HttpContext];
if (ctx != null)
{
return ctx.Request.UserHostAddress;
}
}
if (request.Properties.ContainsKey(RemoteEndpointMessage))
{
dynamic remoteEndpoint = request.Properties[RemoteEndpointMessage];
if (remoteEndpoint != null)
{
return remoteEndpoint.Address;
}
}
return null;
}
}