नमस्कार मुझे क्लाइंट आईपी प्राप्त करने की आवश्यकता है जो वेब एपीआई में कुछ विधि का अनुरोध करता है, मैंने यहां से इस कोड का उपयोग करने की कोशिश की है लेकिन यह हमेशा सर्वर स्थानीय आईपी देता है, सही तरीके से कैसे प्राप्त करें?
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;
}
}