J'ai fait la fonction suivante:
static public string sGetIP()
{
try
{
string functionReturnValue = null;
String oRequestHttp =
WebOperationContext.Current.IncomingRequest.Headers["User-Host-Address"];
if (string.IsNullOrEmpty(oRequestHttp))
{
OperationContext context = OperationContext.Current;
MessageProperties prop = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpoint =
prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
oRequestHttp = endpoint.Address;
}
return functionReturnValue;
}
catch (Exception ex)
{
return "unknown IP";
}
}
Ce travail que dans l'intranet, si vous avez un proxy ou natting vous devriez étudier si l'adresse IP d'origine est déplacé quelque part ailleurs dans le paquet http.
Si vous obtenez System.InvalidOperationException "HttpContext n'est pas disponible Cette classe ne peut être utilisée que dans le contexte d'une requête ASP.NET." \t HttpContext in Context ne sera pas disponible sans ajouter des éléments au fichier web.config. . –
Menace