none
一个小问题,获取客户端IP? RRS feed

  • 问题

  • 我在Web service这一端,如果获取请求服务的客户端IP地址,我用的是WSE3.0,我一开始用RequestSoapContext.Current.Actor.Host,发现取的是服务端的IP,而不是客户端的IP,请问能否取到?
    2009年7月6日 13:02

答案

  • 我在Web service这一端,如果获取请求服务的客户端IP地址,我用的是WSE3.0,我一开始用RequestSoapContext.Current.Actor.Host,发现取的是服务端的IP,而不是客户端的IP,请问能否取到?

    Hi,
       获取客户端IP方式很多吧,你可以都尝试一下:
    1.使用HttpContext.Current.Request.UserHostAddress IP地址
    2.CustomerIP=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
    3. CustomerIP=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    4.NET中Web Service和Web Form获得客户端IP的方法:http://blog.csdn.net/lhsxsh/archive/2008/11/01/3199911.aspx
      
       2.3使用的时候加非空判断:if(HttpContext.Current.Request.ServerVariables["HTTP_VIA"]!=null)
       记得以前参与过Web Service安全的讨论:
    1.http://space.cnblogs.com/question/7202/
    2.http://space.cnblogs.com/question/6951/
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月11日 12:24
    版主

全部回复

  • this.Context.Request.ServerVariables["REMOTE_ADDR"].ToString() 
    知识改变命运,奋斗成就人生!
    2009年7月7日 1:45
    版主
  • 由于我的WS是HOST在Windows Service中的,用this.Context.Request.ServerVariables["REMOTE_ADDR"].ToString() 会报“
    System.InvalidOperationException: HttpContext 不可用。此类只能用于 ASP.NET 请求的上下文中。”的错误。
    2009年7月7日 2:54
  • 如果把程序发布到IIS上,用this.Context.Request.ServerVariables["REMOTE_ADDR"].ToString() 才可以的,但是我是发布在Windows Service中的。

    2009年7月7日 2:58
  • 我在Web service这一端,如果获取请求服务的客户端IP地址,我用的是WSE3.0,我一开始用RequestSoapContext.Current.Actor.Host,发现取的是服务端的IP,而不是客户端的IP,请问能否取到?

    Hi,
       获取客户端IP方式很多吧,你可以都尝试一下:
    1.使用HttpContext.Current.Request.UserHostAddress IP地址
    2.CustomerIP=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
    3. CustomerIP=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
    4.NET中Web Service和Web Form获得客户端IP的方法:http://blog.csdn.net/lhsxsh/archive/2008/11/01/3199911.aspx
      
       2.3使用的时候加非空判断:if(HttpContext.Current.Request.ServerVariables["HTTP_VIA"]!=null)
       记得以前参与过Web Service安全的讨论:
    1.http://space.cnblogs.com/question/7202/
    2.http://space.cnblogs.com/question/6951/
    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://frank_xl.cnblogs.com
    2009年7月11日 12:24
    版主