码迷,mamicode.com
首页 > 编程语言 > 详细

[Java]套接字地址InetAddress讲解

时间:2015-05-27 19:06:17      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:inetaddress   address   套接字   java   

package com.sjf;

import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;

/**
 * 
 * @author sjf0115
 *
 */
public class InetAddressExample {
    public static void main(String[] args)
    {
        // Get the network interfaces and associated for this host
        try
        {
            NetworkInterface networkInterface = null;
            // 获得该主机每一个接口的信息
            Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
            if(interfaceList == null)
            {
                System.out.println("--No interfaces found--");
            }//if
            else
            {
                while(interfaceList.hasMoreElements())
                {
                     networkInterface = interfaceList.nextElement();
                     // 接口名称
                     System.out.println("Interface->"+networkInterface.getName());
                     // 获取与接口相关联的地址 根据主机的不同配置 可能包含IPV4或IPV6地址
                     Enumeration<InetAddress> inetAddressList = networkInterface.getInetAddresses();
                     if(inetAddressList == null)
                     {
                         System.out.println("--No address for this NetworkInterface--");
                     }//if
                     else
                     {
                         InetAddress address = null;
                         while(inetAddressList.hasMoreElements())
                         {
                             address = inetAddressList.nextElement();
                             // 对每个地址进行检测判断属于哪个IP地址子类
                             System.out.print(address instanceof Inet4Address ? "(v4)" : (address instanceof Inet6Address ? "(v6)" : "(?)"));
                             // 打印IP地址
                             System.out.println(":"+address.getHostAddress());
                         }//while
                     }
                }//while
            }
        }
        catch (Exception e) 
        {
        }

        String host = "www.baidu.com";
        try 
        {
            // 一个名字可能关联了多个数字地址 该方法返回一组与给定主机名相关联的所有地址的实例
            InetAddress[] addressesList = InetAddress.getAllByName(host);
            for(InetAddress address : addressesList)
            {
                System.out.println(address.getHostName()+"  "+address.getHostAddress());
            }//for
            // Determines the IP address of a host, given the host‘s name.
            InetAddress address2 = InetAddress.getByName(host);
            System.out.println(address2.getHostName()+" "+address2.getHostAddress());
            // Returns the local host.
            InetAddress address3 = InetAddress.getLocalHost();
            System.out.println(address3.getHostName()+" "+address3.getHostAddress());

        } 
        catch (UnknownHostException e) 
        {
            e.printStackTrace();
        }
    }
}

技术分享

技术分享

技术分享
技术分享

技术分享

[Java]套接字地址InetAddress讲解

标签:inetaddress   address   套接字   java   

原文地址:http://blog.csdn.net/sunnyyoona/article/details/46050443

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!