Aurora.Addon.HyperGrid.GatekeeperAgentHandler.GetCallerIP C# (CSharp) Метод

GetCallerIP() приватный Метод

private GetCallerIP ( Hashtable request ) : string
request System.Collections.Hashtable
Результат string
        private string GetCallerIP(Hashtable request)
        {
            if (!m_Proxy)
                return NetworkUtils.GetCallerIP(request);

            // We're behind a proxy
            Hashtable headers = (Hashtable)request["headers"];

            //// DEBUG
            //foreach (object o in headers.Keys)
            //    MainConsole.Instance.DebugFormat("XXX {0} = {1}", o.ToString(), (headers[o] == null? "null" : headers[o].ToString()));

            string xff = "X-Forwarded-For";
            if (headers.ContainsKey (xff.ToLower ()))
                xff = xff.ToLower ();

            if (!headers.ContainsKey (xff) || headers[xff] == null)
            {
                MainConsole.Instance.WarnFormat ("[AGENT HANDLER]: No XFF header");
                return NetworkUtils.GetCallerIP(request);
            }

            MainConsole.Instance.DebugFormat ("[AGENT HANDLER]: XFF is {0}", headers[xff]);

            IPEndPoint ep = NetworkUtils.GetClientIPFromXFF((string)headers[xff]);
            if (ep != null)
                return ep.Address.ToString ();

            // Oops
            return NetworkUtils.GetCallerIP(request);
        }