Halo, saya perlu mendapatkan IP klien yang meminta beberapa metode dalam api web, saya telah mencoba menggunakan kode ini dari sini tetapi selalu mengembalikan IP lokal server, bagaimana cara mendapatkannya dengan cara yang benar?
HttpContext.Current.Request.UserHostAddress;
dari pertanyaan lain:
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;
}
}