簡體   English   中英

如何從對webservice的請求中獲取客戶端IP地址

[英]How to get the client IP address from the request made to webservice

我在我的IIS中托管了一個web服務...當客戶端直接使用我的服務時,我需要找出clientIP地址

例如http://MyIpAddress/MyApplication/MyWebServiceClass.asmx

是否可以從客戶端計算機讀取文件? 如果是這樣我該怎么辦?

試着打電話

Request.UserHostAddress

HttpRequest.UserHostAddress屬性

關於從客戶端訪問文件,這需要首先將文件上載到服務器來實現。

將文件上載到Web服務時,請檢查以下內容:

ASMX文件上傳

使用.NET創建一個簡單的文件傳輸Web服務

您應該在ASMX中擁有一個普通的舊HTTP上下文:

        HttpContext.Current.Request.UserHostAddress

還重申:“是否可以從客戶端計算機讀取文件” - 這完全取決於您的實現。 如果您正在為您的Intranet制作Web服務並且您在一個小型(ish)商業環境中工作,您可能可以與您的網絡人員進行適當的規划(不提倡這是一個好主意,只是一種可能性)。

為了進一步說明,如果您在小型辦公室環境中並且從192.168.1.55獲得請求,並且您知道網絡中的每台客戶端計算機都在C驅動器中有一個lastLoginData.txt文件,並且您具有UNC的相應配置通過托管服務的機器訪問客戶端,獲得“\\\\”+ ip +“\\ c $ \\ lastLoginData.txt”是可能的。 你會為自己創造一個潛在的可怕的安全問題,但它是可能的。

但是,在大多數正常情況下,不會,您將無法從Web服務訪問客戶端磁盤 - 可能必須首先進行某種上載。

        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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM