views:

115

answers:

1

I can't find the ip address without the aspx page (so on a linux server). If it can work through wcf then its also good.

+1  A: 

I think your best bet is to let a web service return the IP address to the Silverlight client if you are able to use WCF in your application. I don't believe there is any straightforward way to get the client IP directly within Silverlight.

Just a simple web method like this should work:

[OperationContract]
public string GetClientIpAddress()
{
    return HttpContext.Current.Request.UserHostAddress;
}

You might not be able to get the actual client IP address if the request is going through a proxy server, but you could check the HTTP_X_FORWARDED_FOR header as well and use that if available.

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

I wouldn't depend on that as a reliable client IP address though, since not all proxy servers honor that HTTP header and it could also be easily spoofed.

Dan Auclair