【问题标题】:How to find the IP Address of Client connected to Server?如何找到连接到服务器的客户端的 IP 地址?
【发布时间】:2010-12-22 20:42:30
【问题描述】:

我的客户端电脑通过以太网上的套接字作为服务器电脑连接,我如何从服务器端代码中找到此客户端的 IP。
服务器在一个新线程中为每个客户端分配一个套接字。
当我在客户端套接字上执行csocket.getLocalAddress().toString() 时,我仍然得到服务器 IP 地址。 (csocket 是服务器在现在的客户端连接上生成的套接字并将其传递给新线程)。

【问题讨论】:

    标签: java sockets ip-address


    【解决方案1】:

    我相信您想改用remote address

    csocket.getRemoteSocketAddress().toString();
    

    【讨论】:

    【解决方案2】:

    我想您可能正在寻找Socket 对象的getInetAddress 方法。

    【讨论】:

    • 这给出了套接字的本地地址。服务器需要从自己的角度去寻找远程地址。
    • @Stephen:根据 Javadoc,getInetAddress()“返回此套接字连接的远程 IP 地址,如果套接字未连接,则返回 null。”
    【解决方案3】:

    使用此代码:

    String ip=(((InetSocketAddress) socket.getRemoteSocketAddress()).getAddress()).toString().replace("/","");
    

    【讨论】:

    • 这是正确答案。其他答案返回“ipaddr:port”。此答案返回 IP 地址并删除端口号。
    【解决方案4】:

    【讨论】:

      猜你喜欢
      • 2011-07-19
      • 2014-07-31
      • 1970-01-01
      • 2019-11-18
      • 2021-12-10
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多