54 Stimmen

Wie erhalte ich die IP-Adresse des Aufrufers in einer WebMethode?

Wie erhalte ich die IP-Adresse des Aufrufers in einer WebMethode?

[WebMethod]
public void Foo()
{
    // HttpRequest... ? - Not giving me any options through intellisense...
}

mit C# und ASP.NET

0voto

depoip Punkte 101

Ich habe die folgende Funktion erstellt:

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";
        }
}

Dies funktioniert nur im Intranet, wenn Sie einen Proxy oder natting haben, sollten Sie untersuchen, ob die ursprüngliche IP irgendwo anders im http-Paket verschoben wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X