集册 Java实例教程 如果传递的主机采用IPV4四元格式(例如。

如果传递的主机采用IPV4四元格式(例如。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

570
如果传递的主机采用IPV4四元格式(例如。

/* InetAddressUtil

 *

 * 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;
/**
N  o w  J a v a . c o m 提供 
**/

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 = "nowjava.com";

        System.out.println(getIPHostAddress(host));

    }//时 代 J a v a 公 众 号 - nowjava.com 提供

    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) (
展开阅读全文