如何从向 webservice 发出的请求中获取客户端 IP 地址

use*_*910 3 .net c# web-services file-upload

我的 IIS 中托管了一个 webservice...当客户端直接使用我的服务时,我需要找出 clientIP 地址

http://MyIpAddress/MyApplication/MyWebServiceClass.asmx

是否可以从客户端机器读取文件?如果是这样,我该怎么做?

Bri*_*ian 6

在 ASMX 中,您应该有一个普通的旧 HTTP 上下文供您使用:

        HttpContext.Current.Request.UserHostAddress
Run Code Online (Sandbox Code Playgroud)

另请参阅:“是否可以从客户端计算机读取文件”-这一切都取决于您的实现。如果您正在为您的 Intranet 制作 Web 服务并且您在小型(ish)业务环境中工作,您可能可以与您的网络人员进行适当的规划(不提倡这是一个好主意,只是一种可能性)。

更详细地说,如果您在小型办公环境中,并且收到来自 192.168.1.55 的请求,并且您知道网络中的每台客户端计算机在 C 驱动器中都有一个 lastLoginData.txt 文件,并且您有相应的 UNC 配置通过托管服务的机器访问客户端,获得 "\\" + ip + "\c$\lastLoginData.txt" 是可能的。你会为自己制造一个潜在的可怕的安全问题,但这是可能的。

但是,在大多数正常情况下,不,您将无法从 Web 服务访问客户端磁盘 - 可能必须首先进行某种上传。