Socket.getLocalAddress()在Windows上返回环回地址

时间:2016-10-17 10:01:50

标签: java sockets

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

Socket.getLocalAddress().getCanonicalHostName(); 

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

  

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

有人能说出这个安全管理器究竟是什么吗?我将如何获得确切的IP地址而不是环回地址?

1 个答案:

答案 0 :(得分:1)

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

这是来自java doc

  
    

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

  

有关详细信息,请查看this SO帖子。