获取请求的客户端的IP地址(SOAP消息)
问题描述:
我正在创建soap消息并需要找到请求的客户端IP。 我一直在寻找一种方法来查找客户IP,但仍然不能。 你可以让我知道如何从客户端获取请求时如何找到客户端IP?获取请求的客户端的IP地址(SOAP消息)
答
所以,你希望能够看看客户端使用Web服务的IP地址,从服务中?
您可以创建这样一个类,检查你的一些服务器变量,其中一些来自HTTP报头中提取数据的。我发现,刚刚在看HTTP_X_FORWARDED_FOR和REMOTE_ADDR的伎俩(例如在C#):
public class IP
{
public static String UserHostAddress { get { return HttpContext.Current.Request.UserHostAddress; } }
public static String REMOTE_ADDR { get { return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } }
public static String HTTP_X_FORWARDED_FOR { get { return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; } }
public static String HTTP_CLIENT_IP { get { return HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"]; } }
public static String HTTP_X_FORWARDED { get { return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED"]; } }
public static String HTTP_X_CLUSTER_CLIENT_IP { get { return HttpContext.Current.Request.ServerVariables["HTTP_X_CLUSTER_CLIENT_IP"]; } }
public static String HTTP_FORWARDED_FOR { get { return HttpContext.Current.Request.ServerVariables["HTTP_FORWARDED_FOR"]; } }
public static String HTTP_FORWARDED { get { return HttpContext.Current.Request.ServerVariables["HTTP_FORWARDED"]; } }
public static String IP_ADDRESS
{
get
{
if (HTTP_X_FORWARDED_FOR != null)
{
return HTTP_X_FORWARDED_FOR;
}
return REMOTE_ADDR;
}
}
}
+0
-1:仅适用于ASP.NET Web服务,对不对? – 2013-04-09 00:40:31
+0
对,我刚刚意识到我没有解释他问的是正确的。 – digiliooo 2013-04-09 00:46:14
你为什么要手工创建SOAP消息?为什么不使用“添加服务参考”? – 2013-04-09 00:40:49