冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 4206|回覆: 0
打印 上一主題 下一主題

[心得] 用getHostAddress方法獲得IP地址

[複製鏈接]

17

主題

0

好友

15

積分

新手上路

Rank: 1

UID
126691
帖子
39
主題
17
精華
0
積分
15
楓幣
852
威望
15
存款
0
贊助金額
0
推廣
0
GP
16
閱讀權限
10
性別
保密
在線時間
7 小時
註冊時間
2016-1-20
最後登入
2023-6-4
跳轉到指定樓層
1
發表於 2018-2-13 20:52:00 |只看該作者 |倒序瀏覽

  這個方法用來得到主機的IP地址,這個IP地址可能是IPv4的地址,也可能是IPv6的地址。getHostAddress方法的定義如下:

public  String getHostAddress()

    無論InetAddress對像是使用哪種方式創建的,getHostAddress方法都不會訪問DNS 服務器。如果想訪問使用IPv6地址的遠程主機,需要在操作系統上安裝IPv6 協議。下面是Windows  2003上安裝IPv6 協議的步驟:

    第一步:打開“本地連接”屬性對話框。如圖1所示。

No name


    第二步:點擊“安裝”按鈕,出現“選擇網絡組件類型”對話框,選擇“ 協議 ”選項後,點擊“添加”按鈕,出現如圖2的“選擇網絡協議”對話框,選擇“Microsoft TCP /IP版本6”,最後點擊“確定”按鈕。

No name


    除了使用圖形化界面來安裝IPv6外,還可以使用如下命令行來安裝IPv6:

netsh interface ipv6 install

    下面的代碼演示瞭如何利用getHostAddress得到IPv4和IPv6地址,以及如何得到本機的所有IP地址(包括IPv4和IPv6地址)。

package mynet;

import java.net. * ;

public class MyIP { public static void main(String[] args)  throws Exception     { // 輸出IPv4地址        InetAddress ipv4Address1  = InetAddress.getByName( " 1.2.3.4 " );         System.out. println( " ipv4Address1:  " + ipv4Address1.getHostAddress());         InetAddress ipv4Address2  = InetAddress.getByName( " www.ibm.com " );

   


        




        System.out.println(
" ipv4Address2:  " + ipv4Address2.getHostAddress());         InetAddress ipv4Address3  = InetAddress.getByName( " myuniverse " );         System.out.println( " ipv4Address3:  " + ipv4Address3.getHostAddress()); // 輸出IPv6地址        InetAddress ipv6Address1  = InetAddress.getByName( " abcd:123::22ff " );         System.out.println( " ipv6Address1:  " + ipv6Address1.getHostAddress());


        



        InetAddress ipv6Address2  
= InetAddress.getByName( " www.neu6.edu.cn " );
        System.out.println(
" ipv6Address2:  " + ipv6Address2.getHostAddress()); // 輸出本機全部的IP地址        InetAddress Addresses[]  = InetAddress.getAllByName( " myuniverse " ); for (InetAddress address : Addresses)             System.out.println( " 本機地址:" + address.getHostAddress());     } }
        


        




    在上面代碼中使用了www.neu6.edu.cn作為域名,這個域名是東北大學用於測試 IPv6地址的域名。下面是其他一些可用於測試 IPv6的域名,讀者可以使用ping命令或例程3-9來測試這些域名。

www6.whu.edu.cn (武漢大學)
www.jlu6.edu.cn(吉林大學)
www6.usst.edu.cn(上海理工大學)
www.fudan6.edu.cn(復旦大學)

    在訪問這些域名之前,本機必須使用上述的方法或命令行安裝IPv6,否則getByName方法將拋出UnknownHostException異常。

    運行結果:

ipv4Address1:  1.2.3.4
ipv4Address2:  129.42.60.212
ipv4Address3:  192.168.18.10
ipv6Address1: abcd: 123 : 0 : 0 : 0 : 0 : 0 :22ff
ipv6Address2:  2001 :da8: 9000 :b255: 200 :e8ff:feb0:5c5e
本機地址:192.168.18.10
本機地址:192.168.83.1
本機地址:192.168.189.1
本機地址:193.10.10.10
本機地址:0 : 0 : 0 : 0 : 0 : 0: 0 : 1

    在上面的運行結果中的IP地址192.168.18.10和192.10.10.10是和本機網卡綁定的兩個IP,而192.168.83.1和192.168.189.1是VMware虛擬機軟件在本機安裝的兩個虛擬網卡的地址。最後一個IPv6地址0:0:0:0:0:0:0:1是代表本機的IPv6網址,相當於IPv4地址的127.0.0.1.讀者可以使用如下命令行添加IPv6地址和刪除IPv6:

    添加IPv6地址

netsh interface ipv6 add address  " 本地連接"  aa:bb::cc

    刪除IPv6

netsh interface ipv6 uninstall

[發帖際遇]: a29343539 因「興航」倒閉,導致購買的「興航股票」變為壁紙,每股虧損 1 楓幣 幸運榜 / 衰神榜
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1彩票
ewfwefwewegegweg gegwgwegwegwgegegwegwwegwgweg
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-11-21 22:44

回頂部