集册 Java实例教程 获取广播IP地址。

获取广播IP地址。

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

596
提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
获取广播IP地址。

/*

 * Copyright (c) 2004 by Cosylab

 *

 * The full license specifying the redistribution, modification, usage and other

 * rights and obligations is included with the distribution of this project in

 * the file "LICENSE-CAJ". If the license is not included visit Cosylab web site,

 * <http://www.cosylab.com>.

 *

 * THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, NOT EVEN THE

 * IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR OF THIS SOFTWARE, ASSUMES

 * _NO_ RESPONSIBILITY FOR ANY CONSEQUENCE RESULTING FROM THE USE, MODIFICATION,

 * OR REDISTRIBUTION OF THIS SOFTWARE.

 */

//package com.nowjava;
/**
nowjava
**/

import java.net.InetSocketAddress;

import java.net.InterfaceAddress;

import java.net.NetworkInterface;

import java.net.SocketException;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.Iterator;

import java.util.List;


public class Main {

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

        int port = 2;//nowjava.com - 时  代  Java 提供

        System.out.println(java.util.Arrays

                .toString(getBroadcastAddresses(port)));

    }


    /**

     * Get broadcast addresses.

     * @param port port to be added to get socket address.

     * @return array of broadcast addresses with given port.

     */

    public static InetSocketAddress[] getBroadcastAddresses(int port) {

        Enumeration nets;

        try {

            nets = NetworkInterface.getNetworkInterfaces();

        } catch (SocketException se) {

            // fallback

            return new InetSocketAddress[] { new InetSocketAddress(

                    "255.255.255.255", port) };

        }


        ArrayList list = new ArrayList(10);


        while (nets.hasMoreElements()) {

            NetworkInterface net = (NetworkInterface) nets.nextElement();

            //if (net.isUp())

            {

                List interfaceAddresses = net.getInterfaceAddresses();

                Iterator iter = interfaceAddresses.iterator();

                while (iter.hasNext()) {

                    InterfaceAddress addr = (InterfaceAddress) iter.next();

                    if (addr.getBroadcast() 
展开阅读全文