在服务器上获取请求客户端的IP地址

Lef*_*ies 3 c# httplistener

我有一个HttpListener,在这里我有兴趣看到请求客户端的IP地址。另外,还能看到客户端的DNS,但我不确定怎么办,因为据我所知,信息不是通过HTTP发送的?

无论如何,据我所知,我应该可以使用Request.UserHostAddress它,但是我只是在获取我的本地IP地址。我在这里做错了什么?

我应该在哪里获取客户端IP。

        HttpListenerContext context = listener.EndGetContext(result);
        string clientName = context.Request.UserHostAddress;
Run Code Online (Sandbox Code Playgroud)

我在服务器输出列表框中写出的位置有:

        public static void TileString(int x, int y, int z, string dbName, string clientName)
        {
        int[] tileInts = { z, x, y };
        string tileString = string.Join("/", tileInts);

        Application.Current.Dispatcher.Invoke(new Action(() =>
        {
            var mainWindow = Application.Current.MainWindow as MainWindow;
            mainWindow.AppendServerOutput("Delivering tile " + tileString + " in format [z, x, y]" + " from " + dbName + " to client " + clientName + "\n");
        }));
        }
Run Code Online (Sandbox Code Playgroud)

Sji*_*ips 7

尝试使用:

string clientIP = context.Request.RemoteEndPoint.ToString());
Run Code Online (Sandbox Code Playgroud)

  • 如果在代理或 IP 转发后面,这通常是代理地址,而不是客户端地址 (3认同)