Get Current Environment Network IP : IP Address « Network Protocol « Java






Get Current Environment Network IP

       
//package org.netbeams.dsp.util;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

//import org.apache.log4j.Logger;

/**
 * Network Utility class for the network card on a gumstix
 * 
 * @author Marcello de Sales (marcello.sales@gmail.com)
 *
 */
public final class NetworkUtil {
    /**
     * The current host IP address is the IP address from the device.
     */
    private static String currentHostIpAddress;
    
    /**
     * @return the current environment's IP address, taking into account the Internet connection to any of the available
     *         machine's Network interfaces. Examples of the outputs can be in octats or in IPV6 format.
     * <pre>
     *         ==> wlan0
     *         
     *         fec0:0:0:9:213:e8ff:fef1:b717%4 
     *         siteLocal: true 
     *         isLoopback: false isIPV6: true
     *         130.212.150.216 <<<<<<<<<<<------------- This is the one we want to grab so that we can. 
     *         siteLocal: false                          address the DSP on the network. 
     *         isLoopback: false 
     *         isIPV6: false 
     *         
     *         ==> lo 
     *         0:0:0:0:0:0:0:1%1 
     *         siteLocal: false 
     *         isLoopback: true 
     *         isIPV6: true 
     *         127.0.0.1 
     *         siteLocal: false 
     *         isLoopback: true 
     *         isIPV6: false
     *  </pre>
     */
    public static String getCurrentEnvironmentNetworkIp() {
        if (currentHostIpAddress == null) {
            Enumeration<NetworkInterface> netInterfaces = null;
            try {
                netInterfaces = NetworkInterface.getNetworkInterfaces();

                while (netInterfaces.hasMoreElements()) {
                    NetworkInterface ni = netInterfaces.nextElement();
                    Enumeration<InetAddress> address = ni.getInetAddresses();
                    while (address.hasMoreElements()) {
                        InetAddress addr = address.nextElement();
  //                      log.debug("Inetaddress:" + addr.getHostAddress() + " loop? " + addr.isLoopbackAddress() + " local? "
    //                            + addr.isSiteLocalAddress());
                        if (!addr.isLoopbackAddress() && addr.isSiteLocalAddress()
                                && !(addr.getHostAddress().indexOf(":") > -1)) {
                            currentHostIpAddress = addr.getHostAddress();
                        }
                    }
                }
                if (currentHostIpAddress == null) {
                    currentHostIpAddress = "127.0.0.1";
                }

            } catch (SocketException e) {
//                log.error("Somehow we have a socket error acquiring the host IP... Using loopback instead...");
                currentHostIpAddress = "127.0.0.1";
            }
        }
        return currentHostIpAddress;
    }
}

   
    
    
    
    
    
    
  








Related examples in the same category

1.Get IP
2.Get all IP addresses
3.Convert a hostname to the equivalent IP addressConvert a hostname to the equivalent IP address
4.Getting the Hostname of an IP Address
5.Get canonical host name
6.Getting the IP Address and Hostname of the Local Machine
7.Perform Network Lookup with the InetAddress class
8.Get hostname by a byte array containing the IP address
9.Display multiple IP addresses
10.Looking Up the Address of a HostLooking Up the Address of a Host
11.Retrieve the hostname of an IP Address
12.Retrieve the IP address of a hostname
13.Report By Address
14.Determine the IP address and hostname of the local machine
15.An nslookup clone in Java
16.Looking for Ports: 0 -- 1024
17.Looking for Port: 1024 -- 65536
18.Looking for Port: start from 65535
19.A class that performs some subnet calculations given a network address and a subnet mask.
20.Resolves string ip address and returns host name as a string
21.Resolves hostname and returns ip address as a string
22.Resolves ip address and returns host name as a string
23.This program demonstrates the InetAddress class
24.Check if IP address match pattern
25.Converts IPv4 address in its textual presentation form into its numeric binary form.
26.Convert IPv6 presentation level address to network order binary form.
27.Finds this computer's global IP address
28.Finds a local, non-loopback, IPv4 address
29.Check if the specified address is a valid numeric TCP/IP address
30.Check if the specified address is within the required subnet
31.Check if the specified address is a valid numeric TCP/IP address and return as an integer value
32.Convert a raw IP address array as a String
33.Determine if the given string is a valid IPv4 or IPv6 address.Determine if the given string is a valid IPv4 or IPv6 address.
34.A string input validator for IPs and domains.