안녕하세요, 웹 API에서 일부 방법을 요청하는 클라이언트 IP가 필요합니다. 여기 에서이 코드를 사용하려고 시도 했지만 항상 서버 로컬 IP를 반환합니다. 올바른 방법으로 얻는 방법은 무엇입니까?
HttpContext.Current.Request.UserHostAddress;
다른 질문에서 :
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;
}
}