Welcome to the navigation

Eiusmod tempor ipsum eu ea mollit commodo culpa qui ad quis ex dolor laboris irure veniam, enim cillum et duis dolore anim aute in ut. Aute excepteur dolore esse exercitation duis pariatur, deserunt eu enim nisi veniam, fugiat sunt est qui velit proident, ea non do ad voluptate ullamco cillum

Yeah, this will be replaced... But please enjoy the search!

Getting the Client IP via ASP.NET Web API

Categories Tags

I've seen some questions around the web regarding this, this version will return a string with the client IP. If it returns ::1 that means the client is requesting from the same computer as where the API is running. The query address will be something like http://yoursite/api/ip depending on your routing.

using System.Net.Http;
using System.ServiceModel.Channels;
using System.Web;
using System.Web.Http;
 
namespace Trikks.Controllers.Api
{
    public class IpController : ApiController
    {
        public string GetIp()
        {
            return GetClientIp();
        }
 
        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)this.Request.Properties[RemoteEndpointMessageProperty.Name];
                return prop.Address;
            }
            else if (HttpContext.Current != null)
            {
                return HttpContext.Current.Request.UserHostAddress;
            }
            else
            {
                return null;
            }
        }
    }
}
Please note that this portal is a BETA site , I will continuously improve all functionality and performance during the coming weeks / the author