Ich habe versucht:Holen Sie die IP-Adresse des Clients zu einer .NET WebAPI Anwendung C# Verbindungs
private const string HttpContext = "MS_HttpContext";
private const string RemoteEndpointMessage = "System.ServiceModel.Channels.RemoteEndpointMessageProperty";
public static string GetClientIpAddress(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;
}
nach:
Retrieving the client's IP address in ASP.Net Web API
dies ist der kombinierte Ansatz, der für gültig sein sollte Selbst- und Webapi-Host. Leider bekomme ich statt der IP-Adresse null
.
Ich versuche, lokal so ich 127.0.0.1
oder localhost
als IP-Adresse erwarten würde
, was die "this" dreht sich alles um? Ich meine, auf dem nach dem Parameter –
ist es eine Erweiterungsmethode. Wenn in einer statischen Klasse Aufrufe wie 'request.GetClientIpString() erlaubt sind;' – Nkosi
bekomme ich :: 1 von meinem localhost webapi .. glaubst du, ist es korrekt? Ist es ein Alias für 127.0.0.1? –