Returns InetAddress for passed host IF its in IPV4 quads format (e.g. - Java Network

Java examples for Network:IP Address

Description

Returns InetAddress for passed host IF its in IPV4 quads format (e.g.

Demo Code

/* InetAddressUtil/*from   w  ww  .  j  a  v  a  2  s  . c  om*/
 *
 * Created on Nov 19, 2004
 *
 * Copyright (C) 2004 Internet Archive.
 *
 * This file is part of the Heritrix web crawler (crawler.archive.org).
 *
 * Heritrix is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser Public License as published by
 * the Free Software Foundation; either version 2.1 of the License, or
 * any later version.
 *
 * Heritrix is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser Public License for more details.
 *
 * You should have received a copy of the GNU Lesser Public License
 * along with Heritrix; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main{
    public static void main(String[] argv) throws Exception{
        String host = "java2s.com";
        System.out.println(getIPHostAddress(host));
    }
    private static Logger logger = Logger.getLogger(InetAddressUtil.class
            .getName());
    /**
     * ipv4 address.
     */
    public static Pattern IPV4_QUADS = Pattern
            .compile("([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})");
    /**
     * Returns InetAddress for passed <code>host</code> IF its in
     * IPV4 quads format (e.g. 128.128.128.128).
     * <p>TODO: Move to an AddressParsingUtil class.
     * @param host Host name to examine.
     * @return InetAddress IF the passed name was an IP address, else null.
     */
    public static InetAddress getIPHostAddress(String host) {
        InetAddress result = null;
        Matcher matcher = IPV4_QUADS.matcher(host);
        if (matcher == null || !matcher.matches()) {
            return result;
        }
        try {
            // Doing an Inet.getByAddress() avoids a lookup.
            result = InetAddress.getByAddress(host, new byte[] {
                    (byte) (new Integer(matcher.group(1)).intValue()),
                    (byte) (new Integer(matcher.group(2)).intValue()),
                    (byte) (new Integer(matcher.group(3)).intValue()),
                    (byte) (new Integer(matcher.group(4)).intValue()) });
        } catch (NumberFormatException e) {
            logger.warning(e.getMessage());
        } catch (UnknownHostException e) {
            logger.warning(e.getMessage());
        }
        return result;
    }
}

Related Tutorials