我寫了一個自託管的服務堆服務器和一個客戶端,都是桌面應用程序。 在我非常基本的PING測試服務中,我試圖檢索客戶端的IP。 服務器位於192.168.0.87:82,客戶端嘗試在同一臺計算機上和另一臺計算機上,但RemoteIp和UserHostAddress始終返回192.168.0.87:82。 XRealIp爲空。 我也試過base.Request.RemoteIp,但仍然是192.168.0.87:82。如何獲取客戶端的IP?
我在做什麼錯?
public RespPing Any(ReqPing request)
{
string IP = base.RequestContext.Get<IHttpRequest>().RemoteIp;
string MAC = request.iTransactionInfo.MAC;
Log(MAC,IP, base.RequestContext.Get<IHttpRequest>().RemoteIp + base.RequestContext.Get<IHttpRequest>().XRealIp + base.RequestContext.Get<IHttpRequest>().UserHostAddress);
RespPing response = new RespPing { Result = "PONG" };
return response;
}
謝謝!
HttpListenerRequest iHttpListenerRequest = (HttpListenerRequest)base.RequestContext.Get<IHttpRequest>().OriginalRequest;
string IP = iHttpListenerRequest.RemoteEndPoint.ToString().Split(':')[0];
Request.RemoteIP
不停地給我的服務器地址:
'Request.RemoteIp'對我的作品 – jeffgabhart
我相信這是一個最近修正了:https://github.com/ServiceStack/ServiceStack/commit/f7d2365bf9a115d45f9a774aefa8ed2226abe943 –