在Java中获取Application Server名称或ip和端口

时间:2009-12-01 15:36:46

标签: java web-applications websphere

我们希望识别并显示代理Web服务器后面运行的Java应用程序的服务器和端口。这意味着getServerName()和getServerPort()返回代理的服务器名称及其端口(80)。

我们在一个物理盒上运行了两个应用服务器实例,因此每个盒子有两个活动端口,即9080,9081。我希望显示<Application Server Name>:<Application Server Port>

有什么想法吗?我是一个完整的Java noob,对不起,如果这是一个基本问题。

3 个答案:

答案 0 :(得分:14)

服务器主机名是请求的一部分,因为它取决于客户端用于访问主机的URL。以这种方式获得的价值是在客户端上定义的,不一定是您期望的。

如果您对本地主机名感兴趣,可以尝试:

String hostname = InetAddress.getLocalHost().getHostName();

答案 1 :(得分:13)

您可以使用ServletRequest#getLocalXXX()方法。

答案 2 :(得分:0)

Crunchify为此提供了一个很好的例子。

import java.net.InetAddress;
import java.net.UnknownHostException;

public class CrunchifyGetIPHostname {

    public static void main(String[] args) {

        InetAddress ip;
        String hostname;
        try {
            ip = InetAddress.getLocalHost();
            hostname = ip.getHostName();
            System.out.println("Your current IP address : " + ip);
            System.out.println("Your current Hostname : " + hostname);

        } catch (UnknownHostException e) {

            e.printStackTrace();
        }
    }
}
相关问题