集册 Java实例教程 为网络中指定的IP地址构造一个InetAddress对象

为网络中指定的IP地址构造一个InetAddress对象

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

484
为网络字节顺序数组中指定的IP地址构造一个InetAddress对象。

/*

 * NetCallback - forwarding TCP ports behind a firewall

 * Copyright (C) 2001 Alexander V. Konstantinou <akonstan@acm.org>

 *

 * This program is free software; you can redistribute it and/or modify

 * it under the terms of the GNU General Public License as published by

 * the Free Software Foundation; either version 2 of the License, or

 * (at your option) any later version.

 *

 * This program 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 General Public License for more details.

 * 

 * You should have received a copy of the GNU General Public License

 * along with this program; if not, write to the Free Software

 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA

 */

//package com.nowjava;

import java.net.InetAddress;
/*
NowJava.com - 时代Java 提 供
*/

import java.net.UnknownHostException;


public class Main {

    public static void main(String[] argv) throws Exception {

        byte[] address = new byte[] { 34, 35, 36, 37, 37, 37, 67, 68, 69 };

        System.out.println(getByAddress(address));

    }


    /**

     * Constructs an InetAddress object for the IP address specified in

     * the network-byte-order array.

     *

     * @param address - a 4-byte array in network byte order 

     *                 (highest order first)

     * @exception IllegalArgumentException - if the array address argument

     *                                       is not of length 4

     */

    public static InetAddress getByAddress(byte[] address) {

        try {

            InetAddress inet = InetAddress

                    .getByName(getDottedIPv4Address(address));

            return (inet);//来 自 时代Java - N o w  J a v a . c o m

        } catch (UnknownHostException e) {

            throw new RuntimeException(

                    "Internal error: unexpected exception on "

                            + "dotted IP address parsing: "

                            + e.getClass().getName() + ": "

                            + e.getMessage());

        }

    }


    /**

     * Returns the IP address string "%d.%d.%d.%d" for the given IPv4 address.

     *

     * @param address - a 4-byte array in network byte order 

     *                 (highest order first)

     * @exception IllegalArgumentException - if the array address argument

     *                                       is not of length 4

     */

    public static String getDottedIPv4Address(byte[] address) {

        if (address == null) {

            throw new 
展开阅读全文