| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Net.Http;
 
- using System.ServiceModel.Channels;
 
- using System.Web;
 
- using System.Web.Http;
 
- namespace iBemsDataService.Controllers
 
- {
 
-     public class ClientAccessController : ApiController
 
-     {
 
-         [ActionName("ClientIpAddress")]
 
-         public ClientInfo GetClientIpAddress()
 
-         {
 
-             ClientInfo clientInfo = new ClientInfo();
 
-             clientInfo.ip = GetIPAddress();
 
-             return clientInfo;
 
-         }
 
-         protected string GetIPAddress()
 
-         {
 
-             System.Web.HttpContext context = System.Web.HttpContext.Current;
 
-             string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
 
-             if (!string.IsNullOrEmpty(ipAddress))
 
-             {
 
-                 string[] addresses = ipAddress.Split(',');
 
-                 if (addresses.Length != 0)
 
-                 {
 
-                     return addresses[0];
 
-                 }
 
-             }
 
-             return context.Request.ServerVariables["REMOTE_ADDR"];
 
-         }
 
-         private string GetClientIp(HttpRequestMessage request = null)
 
-         {
 
-             request = request ?? Request;
 
-             if (request.Properties.ContainsKey("MS_HttpContext"))
 
-             {
 
-                 return ((HttpContextWrapper)request.Properties["MS_HttpContext"]).Request.UserHostAddress;
 
-             }
 
-             else if (request.Properties.ContainsKey(RemoteEndpointMessageProperty.Name))
 
-             {
 
-                 RemoteEndpointMessageProperty prop = (RemoteEndpointMessageProperty)request.Properties[RemoteEndpointMessageProperty.Name];
 
-                 return prop.Address;
 
-             }
 
-             else if (HttpContext.Current != null)
 
-             {
 
-                 return HttpContext.Current.Request.UserHostAddress;
 
-             }
 
-             else
 
-             {
 
-                 return null;
 
-             }
 
-         }
 
-         public class ClientInfo
 
-         {
 
-             public String ip { get; set; }
 
-         }
 
-     }
 
- }
 
 
  |