2016-06-02 6 views
10

मैं एज़ूर फ़ंक्शंस का उपयोग करके सी # में एक फ़ंक्शन लिख रहा हूं और उस फ़ंक्शन को कॉल करने वाले क्लाइंट का आईपी पता प्राप्त करने की आवश्यकता है, क्या यह संभव है?Azure Functions C# में क्लाइंट आईपी पता कैसे प्राप्त करें?

उत्तर

14

यहां एक उत्तर 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

आप इन समारोह का उपयोग करना चाहिए Get the IP address of the remote host

request.Properties अगर आप precompiled कार्यों डिबग स्थानीय request.Properties [RemoteEndpointMessageProperty.Name] नीला

पर उपलब्ध नहीं है [ "MS_HttpContext"] उपलब्ध नहीं है
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; 
} 
संबंधित मुद्दे