InetAddress

Java socket應(yīng)用—通信
** InetAddress**

1、InetAddress 類用于標(biāo)示網(wǎng)絡(luò)上的硬件資源,標(biāo)示互聯(lián)網(wǎng)協(xié)議(IP)地址。

  • IP 地址是 IP 使用的 32 位或 128 位無符號數(shù)字,它是一種低級協(xié)議,UDP 和 TCP協(xié)議都是在它的基礎(chǔ)上構(gòu)建的。
    

2、InetAddress 類的幾個(gè)常用方法:

  • getHostName
    public String getHostName()

獲取此 IP 地址的主機(jī)名。如果此 InetAddress 是用主機(jī)名創(chuàng)建的,則記憶并返回主機(jī)名;否則,將執(zhí)行反向名稱查找并基于系統(tǒng)配置的名稱查找服務(wù)返回結(jié)果。
返回:
此 IP 地址的主機(jī)名;如果安全檢查不允許操作,則返回 IP 地址的文本表示形式。

  • getAddress
    public byte[] getAddress()

返回此 InetAddress 對象的原始 IP 地址。結(jié)果按網(wǎng)絡(luò)字節(jié)順序:地址的高位字節(jié)位于 getAddress()[0] 中。返回:此對象的原始 IP 地址。getHostAddresspublic String getHostAddress()
返回 IP 地址字符串(以文本表現(xiàn)形式)。
返回:
字符串格式的原始 IP 地址。

  • getByAddresspublic
    static InetAddress getByAddress(String host, byte[] addr)throws UnknownHostException

根據(jù)提供的主機(jī)名和 IP 地址創(chuàng)建 InetAddress。不檢查名稱服務(wù)的地址有效性。主機(jī)名可以是機(jī)器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。
也不在主機(jī)名上執(zhí)行有效性檢查。
如果 addr 指定 IPv4 地址,則返回 Inet4Address 的實(shí)例;否則將返回 Inet6Address 的實(shí)例。
IPv4 地址 byte 數(shù)組的長度必須為 4 個(gè)字節(jié),IPv6 byte 數(shù)組的長度必須為 16 個(gè)字節(jié)
參數(shù):
host - 指定主機(jī)
addr - 網(wǎng)絡(luò)字節(jié)順序的原始 IP 地址
返回:
根據(jù)原始 IP 地址創(chuàng)建的 InetAddress 對象。

  • getByName
    public static InetAddress getByName(String host) throws UnknownHostException

在給定主機(jī)名的情況下確定主機(jī)的 IP 地址。主機(jī)名可以是機(jī)器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式。如果提供字面值 IP 地址,則僅檢查地址格式的有效性。
如果主機(jī)為 null,則返回表示回送接口地址的 InetAddress。
參數(shù):
host - 指定的主機(jī),或 null。
返回:
給定主機(jī)名的 IP 地址。

  • getByAddress
    public static InetAddress getByAddress(byte[] addr) throws UnknownHostException

在給定原始 IP 地址的情況下,返回 InetAddress 對象。參數(shù)按網(wǎng)絡(luò)字節(jié)順序:地址的高位字節(jié)位于 getAddress()[0] 中。此方法不會阻塞,即不執(zhí)行任何反向名稱服務(wù)查找操作。
IPv4 地址 byte 數(shù)組的長度必須為 4 個(gè)字節(jié),IPv6 byte 數(shù)組的長度必須為 16 個(gè)字節(jié)
參數(shù):
addr - 網(wǎng)絡(luò)字節(jié)順序的原始 IP 地址
返回:
根據(jù)原始 IP 地址創(chuàng)建的 InetAddress 對象。

  • getLocalHost
    public static InetAddress getLocalHost() throws UnknownHostException

返回本地主機(jī)。如果有安全管理器,則使用本地主機(jī)名和 -1 作為參數(shù)來調(diào)用其 checkConnect 方法,以查看是否允許該操作。如果不允許該操作,則返回表示回送地址的 InetAddress。
返回:
本地主機(jī)的 IP 地址。


3. 示例代碼:

public class Test {
     public static void main(String[] args) throws UnknownHostException {
           //獲取本機(jī)的InetAddress實(shí)例
         InetAddress address=InetAddress.getLocalHost();
           //獲取計(jì)算機(jī)名
         System.out.println("計(jì)算機(jī)名:"+address.getHostName());       
        //獲取IP地址
         System.out.println("IP地址:"+address.getHostAddress());
        //獲取字節(jié)數(shù)組形式的IP地址
         byte[] bytes=address.getAddress();                           
         System.out.println("字節(jié)數(shù)組形式的IP:"+Arrays.toString(bytes));
         //直接輸出InetAddress對象
         System.out.println(address); 
                        
         InetAddress address2=InetAddress .getByName("PC201607091933");
         System.out.println("獲取計(jì)算機(jī)名:"+address2.getHostName());
         System.out.println("獲取IP地址:"+address2.getHostAddress());
     }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 1.OkHttp源碼解析(一):OKHttp初階2 OkHttp源碼解析(二):OkHttp連接的"前戲"——HT...
    隔壁老李頭閱讀 21,572評論 24 176
  • 簡介 用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 6,077評論 1 13
  • 好久沒跟先生冷戰(zhàn)了,最近因?yàn)橐患∈?,又惹起來他的臭脾氣了。突然覺得,我生氣還好哄點(diǎn),他生氣,就得搞幾天情緒,讓...
    長不大小姐JOY閱讀 501評論 0 0
  • 生活中有人替你負(fù)重前行,你才會走的那么輕松! 感謝一直在我身邊的老公!
    于小魚歪歪閱讀 162評論 3 0

友情鏈接更多精彩內(nèi)容