我的IIS中有一个web服务...我需要在客户端直接使用我的服务时找到clientIP地址
喜欢http://MyIpAddress/MyApplication/MyWebServiceClass.asmx
是否可以从客户端计算机读取文件?如果是这样我该怎么办?
答案 0 :(得分:4)
尝试拨打
Request.UserHostAddress
HttpRequest.UserHostAddress Property
关于从客户端访问文件,首先需要将文件上传到服务器。
将文件上传到网络服务时,请检查以下内容:
答案 1 :(得分:4)
您应该在ASMX中拥有一个普通的旧HTTP上下文:
HttpContext.Current.Request.UserHostAddress
另外:“是否可以从客户端计算机读取文件” - 这完全取决于您的实现。如果您正在为您的Intranet制作Web服务并且您在一个小型(ish)商业环境中工作,那么您可能可以与您的网络人员进行适当的规划(不提倡这是一个好主意,只是一种可能性)。 / p>
进一步说明一下,如果您在小型办公室环境中并且从192.168.1.55获得请求,并且您知道网络中的每台客户端计算机在C驱动器中都有一个lastLoginData.txt文件,并且您具有相应的通过托管服务的机器对UNC访问客户端的配置,可以获得“\\”+ ip +“\ c $ \ lastLoginData.txt”。你会为自己创造一个潜在的可怕的安全问题,但这是可能的。
在大多数正常情况下,不会,您将无法从Web服务访问客户端磁盘 - 可能必须首先进行某种上载。
答案 2 :(得分:0)
String ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(ip))
{
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
else
{
ip=ip.Split(',')[0];
}
return ip;