`

Socket InetAddressExample

阅读更多
package com.mz.xx.code;

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

public class InetAddressExample {
    
    public static void main(String[] args) {
        
        try {
            //1.获取主机的网络接口列表
            //静态方法getNetworkInterface()返回一个列表,其中包含勒该主机每一个接口所对应的NetworkInterface类实例。
            Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
            if(interfaceList==null){
                System.out.println("--No interface found--");
            }else{
                while(interfaceList.hasMoreElements()){
                    NetworkInterface iface = interfaceList.nextElement();
                    System.out.println("interface "+iface.getName()+":");
                    Enumeration<InetAddress> addrList = iface.getInetAddresses();
                    
                    if(!addrList.hasMoreElements()){
                        System.out.println("\t(No address for this interface)");
                    }
                    while(addrList.hasMoreElements()){
                        InetAddress address = addrList.nextElement();
                        System.out.print("\tAddress"+((address instanceof Inet4Address ? "(v4)" :(address instanceof Inet6Address ? "(v6)" : "(?)"))));
                        System.out.println(": "+address.getHostAddress());
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
        
        for(String host : args){
            try {
                System.out.println(host+":");
                InetAddress[] addressList = InetAddress.getAllByName(host);
                for(InetAddress address: addressList){
                    System.out.println("\t"+address.getHostName()+"/" + address.getHostAddress());
                }
                
            } catch (UnknownHostException e) {
                System.out.println("\tUnable tofind addrss for"+host);
            }
        }
    }
}



package com.mz.xx.code;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;

public class Test {
    
    /* 一:IPv4 与 IPv6 
     *    互联网地址由二进制数字组成,有两种形式,分别对应勒两个版本的标准互联网协议.
     *       IPv4: 地址长为32位   IPV4被表示为一组4个十进制数,每两个数字之间由原点隔开(如:10.1.2.3),
     *            这种表示方法叫做 点分形式.点分形式字符串中的4个数字代表勒互联网地址的4个字节,也就是
     *            说,每个数字的范围是0-255. 
     *    IPv6: 地址长为128位.IPv6地址的16个字节由几组16进制的数字表示,这些16进制数字之间由分号隔开
     *            (如:2000:fdb8:0000;0000:0001:00ab:853c:39a1)
     * 
     * 二:InetAddress类代表一个网络目标地址,t包括主机名和数字类型的地址信息。
     *       该类有两个子类,Inet4Address和Inet6Address,分别对应勒目前IP地址的两个版本.
     *    InetAddress实例是不可变得,一旦创建,每个实例始终                                                                              指向同一个地址.
     *    
     * 三:Ip地址实际上是分配给主机与网络之间的链接,而不是主机本身.NetworkInterface类提供访问主机
     *       所有接口的信息的功能.这个功能非常有用,当一个程序需要通知其他程序其IP地址时就会用到.
     *    
     */
    
    
    public static void main(String[] args) {
//        try {
//            Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
//            while(interfaceList.hasMoreElements()){
//                NetworkInterface iface =  interfaceList.nextElement();
//                System.out.println("Interface "+iface.getName()+":");
//                Enumeration<InetAddress> addrList = iface.getInetAddresses();
//                
//                while(addrList.hasMoreElements()){
//                    InetAddress address = addrList.nextElement();
//                    System.out.println(address.toString()+"\t"+address.getHostName());
//                }
//            }
//        } catch (SocketException e) {
//            e.printStackTrace();
//        }
        
        
        /**
         * host : 为服务器地址.可以是字符串(IPv6--- )、也可以是数字型地址()。
         */
        
        String host = "www.baidu.com";
        
        try {
            InetAddress[] addressList = InetAddress.getAllByName(host);
            
            for(InetAddress address : addressList){
                System.out.println("\t"+address.getHostName()+"\t"+address.getHostAddress());
            }
            
        } catch (UnknownHostException e) {
            System.out.println("\tUnable to find address for" + "192.168.1.71");
        }
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics