如何获得客户端的IP?

Mat*_*rli 3 servicestack

我写了一个自托管服务堆栈服务器和一个客户端,两个桌面应用程序.在我非常基本的PING测试服务中,我正在尝试检索客户端的IP.服务器在192.168.0.87:82,客户端我在同一台计算机和另一台计算机上尝试过,但RemoteIp和UserHostAddress总是返回192.168.0.87:82.XRealIp为空.我也试过base.Request.RemoteIp,但仍然是192.168.0.87:82.

我究竟做错了什么?

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;
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mat*_*rli 6

制作它:

HttpListenerRequest iHttpListenerRequest = (HttpListenerRequest)base.RequestContext.Get<IHttpRequest>().OriginalRequest;

string IP = iHttpListenerRequest.RemoteEndPoint.ToString().Split(':')[0]; 
Run Code Online (Sandbox Code Playgroud)

Request.RemoteIP 一直给我服务器地址.