Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Socket.getLocalAddress()返回windows上的环回地址_Java_Sockets - Fatal编程技术网

Java Socket.getLocalAddress()返回windows上的环回地址

Java Socket.getLocalAddress()返回windows上的环回地址,java,sockets,Java,Sockets,我正在尝试使用以下代码获取windows服务器的主机名: Socket.getLocalAddress().getCanonicalHostName(); 它正在返回环回地址。在getLocalAddress()的Java帮助中,它被称为 如果设置了安全管理器,则调用其checkConnect方法 使用本地地址和-1作为其参数,以查看操作 是允许的。如果不允许该操作,则环回地址为 返回“ 谁能告诉我这个安全经理到底是什么?如何获得准确的IP地址而不是环回地址?InetAddress.getL

我正在尝试使用以下代码获取windows服务器的主机名:

Socket.getLocalAddress().getCanonicalHostName(); 
它正在返回环回地址。在
getLocalAddress()
的Java帮助中,它被称为

如果设置了安全管理器,则调用其checkConnect方法 使用本地地址和-1作为其参数,以查看操作 是允许的。如果不允许该操作,则环回地址为 返回“


谁能告诉我这个安全经理到底是什么?如何获得准确的IP地址而不是环回地址?

InetAddress.getLocalHost().getHostAddress()
应该提供IP地址

这是来自java的

安全管理器是为应用程序定义安全策略的对象。此策略指定不安全或敏感的操作。安全策略不允许的任何操作都会引发SecurityException。应用程序还可以查询其安全管理器以发现允许哪些操作


欲了解更多信息,请查看SO post

有关更多信息,请检查您链接的答案,该答案与您在此处声称的内容几乎完全相反。@EJP accepted answer提供了详细信息,如当存在多个网络接口时如何处理等。但其他答案有点直截了当。在调用
getLocalAddress()之前,您将套接字连接到了什么
?使用“SocketFetcher.getSocket()”