Java Host Address Get getHostnameOrAddress()

Here you can find the source of getHostnameOrAddress()

Description

Get the hostname or IP address.

License

Apache License

Return

The hostname if available, otherwise a dotted quad address. Returns null if neither can be determined.

Declaration

public static String getHostnameOrAddress() 

Method Source Code

//package com.java2s;
/**//  w  w w .  j a v  a  2 s.  co m
 * Copyright (C) 2014-2015 LinkedIn Corp. (pinot-core@linkedin.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class Main {
    private static final String DUMMY_OUT_IP = "74.125.224.0";

    /**
     * Get the hostname or IP address.
     *
     * @return The hostname if available, otherwise a dotted quad address. Returns null if neither can be determined.
     */
    public static String getHostnameOrAddress() {
        try {
            return InetAddress.getLocalHost().getCanonicalHostName();
        } catch (UnknownHostException ignored) {
            try {
                return getHostAddress();
            } catch (Exception e) {
                return null;
            }
        }
    }

    /**
     * Get the ip address of local host.
     */
    public static String getHostAddress() throws SocketException, UnknownHostException {
        DatagramSocket ds = new DatagramSocket();
        ds.connect(InetAddress.getByName(DUMMY_OUT_IP), 80);
        InetAddress localAddress = ds.getLocalAddress();
        if (localAddress.getHostAddress().equals("0.0.0.0")) {
            localAddress = InetAddress.getLocalHost();
        }
        return localAddress.getHostAddress();
    }
}

Related

  1. getHostExternalAddr()
  2. getHostName(String addr)
  3. getHostName(String address)
  4. getHostName(String address)
  5. getHostName(String localAddress)
  6. getHostnameOrAddress()
  7. getHostNameOrAddress(String host)