获取所请求客户端的IP地址(Soap消息)

时间:2013-04-09 00:00:05

标签: web-services soap inbound clientip

我正在创建soap消息,需要查找请求的客户端IP。 我一直在寻找一种方法来寻找客户端IP,但仍然无法找到。 你能告诉我在收到客户请求后如何找到客户端ip的步骤吗?

1 个答案:

答案 0 :(得分:-1)

那么您希望能够从服务中查看使用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;
        }
    }
}
相关问题