Java Socket.getLocalAddress()返回windows上的环回地址
我正在尝试使用以下代码获取windows服务器的主机名:Java Socket.getLocalAddress()返回windows上的环回地址,java,sockets,Java,Sockets,我正在尝试使用以下代码获取windows服务器的主机名: Socket.getLocalAddress().getCanonicalHostName(); 它正在返回环回地址。在getLocalAddress()的Java帮助中,它被称为 如果设置了安全管理器,则调用其checkConnect方法 使用本地地址和-1作为其参数,以查看操作 是允许的。如果不允许该操作,则环回地址为 返回“ 谁能告诉我这个安全经理到底是什么?如何获得准确的IP地址而不是环回地址?InetAddress.getL
Socket.getLocalAddress().getCanonicalHostName();
它正在返回环回地址。在getLocalAddress()
的Java帮助中,它被称为
如果设置了安全管理器,则调用其checkConnect方法
使用本地地址和-1作为其参数,以查看操作
是允许的。如果不允许该操作,则环回地址为
返回“
谁能告诉我这个安全经理到底是什么?如何获得准确的IP地址而不是环回地址?
InetAddress.getLocalHost().getHostAddress()
应该提供IP地址
这是来自java的
安全管理器是为应用程序定义安全策略的对象。此策略指定不安全或敏感的操作。安全策略不允许的任何操作都会引发SecurityException。应用程序还可以查询其安全管理器以发现允许哪些操作
欲了解更多信息,请查看SO post 有关更多信息,请检查您链接的答案,该答案与您在此处声称的内容几乎完全相反。@EJP accepted answer提供了详细信息,如当存在多个网络接口时如何处理等。但其他答案有点直截了当。在调用
getLocalAddress()之前,您将套接字连接到了什么
?使用“SocketFetcher.getSocket()”