InetAddress-InetSocketAddress

InetAddress:封裝計算機的IP地址和DNS,沒有端口
InetAddress() {
    holder = new InetAddressHolder();
}
InetSocketAddress:封裝計算機的IP地址和端口,從構造方法就能發現
private InetSocketAddressHolder(String hostname, InetAddress addr, int port) {
    this.hostname = hostname;
    this.addr = addr;
    this.port = port;
}
package ghs.jute;

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;

public class InetAddressTest {
    public static void main(String[] args) throws UnknownHostException {
        try {
            //InetAddress,封裝計算機的IP地址和DNS,沒有端口
            System.out.println("========InetAddress封裝計算機的IP地址和DNS,沒有端口========");
            // 使用getLocalHost方法爲InetAddress創建對象;
            InetAddress add = InetAddress.getLocalHost();//獲得本機的InetAddress對象
            System.out.println("獲取主機Ip,InetAddress.getHostAddress:" + add.getHostAddress());//返回本機IP地址
            System.out.println("獲取主機名hostname,InetAddress.getHostName:" + add.getHostName());//輸出計算機名
            //根據域名(dns解析)得到InetAddress對象
            add = InetAddress.getByName("www.baidu.com");
            System.out.println("獲取主機Ip,InetAddress.getHostAddress:" + add.getHostAddress());//返回百度服務器的IP地址
            System.out.println("獲取主機名hostname,InetAddress.getHostName:" + add.getHostName());//輸出www.baidu.com;
            //根據ip得到InetAddress對象;
            add = InetAddress.getByName("111.13.100.91");
            System.out.println("獲取主機Ip,InetAddress.getHostAddress:" + add.getHostAddress());
            //如果ip地址存在,並且DNS給你解析就會輸出
            System.out.println("獲取主機名hostname,InetAddress.getHostName:" + add.getHostName());
            //www.baidu.com,不給你解析就會返回這個IP本身;
            System.out.println("========InetAddress封裝計算機的IP地址和DNS,沒有端口========");

            System.out.println("========InetSocketAddress封裝計算機的IP地址和端口========");
            InetSocketAddress add1 = new InetSocketAddress("10.1.1.165", 2181);
            System.out.println("InetSocketAddress.getHostName():" + add1.getHostName());
            System.out.println("InetSocketAddress.getPort():" + add1.getPort());
            System.out.println("========InetSocketAddress封裝計算機的IP地址和端口========");

            //根據InetSocketAddress獲取InetAddress
            System.out.println("========根據InetSocketAddress獲取InetAddress========");
            InetAddress addr = add1.getAddress();//獲得端口的ip;
            System.out.println(addr.getHostAddress());//返回ip;
            System.out.println(addr.getHostName());//輸出端口名;
            System.out.println("========根據InetSocketAddress獲取InetAddress========");


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

}

運行結果:

========InetAddress封裝計算機的IP地址和DNS,沒有端口========
獲取主機Ip,InetAddress.getHostAddress:127.0.0.1
獲取主機名hostname,InetAddress.getHostName:gaohuashui
獲取主機Ip,InetAddress.getHostAddress:112.80.248.76
獲取主機名hostname,InetAddress.getHostName:www.baidu.com
獲取主機Ip,InetAddress.getHostAddress:111.13.100.91
獲取主機名hostname,InetAddress.getHostName:111.13.100.91
========InetAddress封裝計算機的IP地址和DNS,沒有端口========
========InetSocketAddress封裝計算機的IP地址和端口========
InetSocketAddress.getHostName():water.com
InetSocketAddress.getPort():2181
========InetSocketAddress封裝計算機的IP地址和端口========
========根據InetSocketAddress獲取InetAddress========
10.1.1.165
water.com
========根據InetSocketAddress獲取InetAddress========

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章