Java examples for Network:IP Address
Returns InetAddress for passed host IF its in IPV4 quads format (e.g.
/* 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; } }