2016-06-02 17 views

Odpowiedz

14

Oto odpowiedź na podstawie numeru here.

#r "System.Web" 

using System.Net; 
using System.Web; 

public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log) 
{ 
    string clientIP = ((HttpContextWrapper)req.Properties["MS_HttpContext"]).Request.UserHostAddress; 
    return req.CreateResponse(HttpStatusCode.OK, $"The client IP is {clientIP}"); 
} 
5

należy korzystać z tych funkcji Get the IP address of the remote host

request.Properties [ "MS_HttpContext"] nie jest dostępna, jeśli funkcje debugowania skompilowane lokalne request.Properties [RemoteEndpointMessageProperty.Name] nie jest dostępny na lazurowym

private string GetClientIp(HttpRequestMessage request) 
{ 
    if (request.Properties.ContainsKey("MS_HttpContext")) 
    { 
     return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress; 
    } 

    if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name)) 
    { 
     RemoteEndpointMessageProperty prop; 
     prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name]; 
     return prop.Address; 
    } 

    return null; 
} 
Powiązane problemy