[英]How to get the client IP address from the request made to webservice
我在我的IIS中托管了一個web服務...當客戶端直接使用我的服務時,我需要找出clientIP地址
例如http://MyIpAddress/MyApplication/MyWebServiceClass.asmx
是否可以從客戶端計算機讀取文件? 如果是這樣我該怎么辦?
試着打電話
Request.UserHostAddress
關於從客戶端訪問文件,這需要首先將文件上載到服務器來實現。
將文件上載到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.