blob: 32ba2dadfbb19dbbe33122da7378210666d12261 [file] [log] [blame]
/*
* Copyright 2004 The Apache Software Foundation.
*
* 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.
*/
package org.apache.axis.utils;
import org.apache.commons.logging.Log;
import org.apache.axis.components.logger.LogFactory;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* Utility classes for networking
* created 13-May-2004 16:17:51
*/
public class NetworkUtils {
/**
* what we return when we cannot determine our hostname.
* We use this rather than 'localhost' as if DNS is very confused,
* localhost can map to different machines than "self".
*/
public static final String LOCALHOST = "127.0.0.1";
/**
* loopback address in IPV6
*/
public static final String LOCALHOST_IPV6 = "0:0:0:0:0:0:0:1";
/**
* keep this uninstantiable.
*/
private NetworkUtils() {
}
protected static Log log =
LogFactory.getLog(NetworkUtils.class.getName());
/**
* Get the string defining the hostname of the system, as taken from
* the default network adapter of the system. There is no guarantee that
* this will be fully qualified, or that it is the hostname used by external
* machines to access the server.
* If we cannot determine the name, then we return the default hostname,
* which is defined by {@link #LOCALHOST}
* @return a string name of the host.
*/
public static String getLocalHostname() {
InetAddress address;
String hostname;
try {
address = InetAddress.getLocalHost();
//force a best effort reverse DNS lookup
hostname = address.getHostName();
if (hostname == null || hostname.length() == 0) {
hostname = address.toString();
}
} catch (UnknownHostException noIpAddrException) {
//this machine is not on a LAN, or DNS is unhappy
//return the default hostname
if(log.isDebugEnabled()) {
log.debug("Failed to lookup local IP address",noIpAddrException);
}
hostname = LOCALHOST;
}
return hostname;
}
}