标签: java sockets
我正在尝试使用以下代码获取我的Windows服务器的主机名:
Socket.getLocalAddress().getCanonicalHostName();
它正在返回环回地址。在getLocalAddress()的Java帮助中,它被称为
getLocalAddress()
“如果设置了安全管理器,则会调用其checkConnect方法 用本地地址和-1作为参数来查看是否有操作 被允许。如果不允许该操作,则回送地址为 返回“
有人能说出这个安全管理器究竟是什么吗?我将如何获得确切的IP地址而不是环回地址?
答案 0 :(得分:1)
InetAddress.getLocalHost().getHostAddress()应该为您提供IP地址。
InetAddress.getLocalHost().getHostAddress()
这是来自java doc。
安全管理器是一个定义应用程序安全策略的对象。此策略指定不安全或敏感的操作。安全策略不允许的任何操作都会导致抛出SecurityException。应用程序还可以查询其安全管理器以发现允许的操作。
有关详细信息,请查看this SO帖子。