user222198
user222198

Reputation:

Get Application Server name or ip and port in Java

We would like to identify and display the server and port that a Java application is running on that is behind a proxy web server. This means that getServerName() and getServerPort() return the server name of the proxy and its port (80).

We have two application server instances running on a single physical box and therefore have two active ports per box i.e. 9080, 9081. What I'd like to have is <Application Server Name>:<Application Server Port> displayed.

Any ideas? I'm a complete Java noob, sorry if this is a basic question.

Upvotes: 7

Views: 70076

Answers (3)

biniam
biniam

Reputation: 8199

Crunchify provides a nice example for this.

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();
        }
    }
}

Upvotes: -1

rsp
rsp

Reputation: 23373

The server hostname is part of the request, as it depends on what URL the client used to reach your host. The value you get in this way is defined on the client and does not have to be what you expect.

If you are interested in the local hostname, you can try:

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

Upvotes: 16

BalusC
BalusC

Reputation: 1109522

You can use ServletRequest#getLocalXXX() methods for this.

Upvotes: 15

Related Questions