本文為原創(chuàng),如需轉(zhuǎn)載,請注明作者和出處,謝謝!
上一篇:
Java網(wǎng)絡(luò)編程從入門到精通(6):使用getCanonicalHostName方法獲得主機(jī)名
這個方法用來得到主機(jī)的
IP
地址,這個
IP
地址可能是
IPv4
的地址,也可能是
IPv6
的地址。
getHostAddress
方法的定義如下:
無論
InetAddress
對象是使用哪種方式創(chuàng)建的,
getHostAddress
方法都不會訪問
DNS
服務(wù)器。如果想訪問使用
IPv6
地址的遠(yuǎn)程主機(jī),需要在操作系統(tǒng)上安裝
IPv6
協(xié)議。下面是
Windows 2003
上安裝
IPv6
協(xié)議的步驟:
第一步:
打開
“
本地連接
”
屬性對話框。如圖1所示
。

第二步:
點(diǎn)擊
“
安裝
”
按鈕,出現(xiàn)
“
選擇網(wǎng)絡(luò)組件類型
”
對話框,選擇
“
協(xié)議
”
選項(xiàng)后,點(diǎn)擊
“
添加
”
按鈕,出現(xiàn)如圖
2
的
“
選擇網(wǎng)絡(luò)協(xié)議
”
對話框,選擇
“Microsoft TCP/IP
版本
6”
,最后點(diǎn)擊
“
確定
”
按鈕。

除了使用圖形化界面來安裝
IPv6
外,還可以使用如下命令行來安裝
IPv6
:
下面的代碼 演示了如何利用 getHostAddress 得到 IPv4 和 IPv6 地址,以及如何得到本機(jī)的所有 IP 地址(包括 IPv4 和 IPv6 地址)。
import java.net. * ;
public class MyIP
{
public static void main(String[]args) throws Exception
{
// 輸出IPv4地址
InetAddressipv4Address1 = InetAddress.getByName( " 1.2.3.4 " );
System.out.println( " ipv4Address1: " + ipv4Address1.getHostAddress());
InetAddressipv4Address2 = InetAddress.getByName( " www.ibm.com " );
System.out.println( " ipv4Address2: " + ipv4Address2.getHostAddress());
InetAddressipv4Address3 = InetAddress.getByName( " myuniverse " );
System.out.println( " ipv4Address3: " + ipv4Address3.getHostAddress());
// 輸出IPv6地址
InetAddressipv6Address1 = InetAddress.getByName( " abcd:123::22ff " );
System.out.println( " ipv6Address1: " + ipv6Address1.getHostAddress());
InetAddressipv6Address2 = InetAddress.getByName( " www.neu6.edu.cn " );
System.out.println( " ipv6Address2: " + ipv6Address2.getHostAddress());
// 輸出本機(jī)全部的IP地址
InetAddressAddresses[] = InetAddress.getAllByName( " myuniverse " );
for (InetAddressaddress:Addresses)
System.out.println( " 本機(jī)地址: " + address.getHostAddress());
}
}
在上面代碼
中
使用了
www.neu6.edu.cn
作為域名,這個域名是東北大學(xué)用于測試
IPv6
地址的域名。下面是其他一些可用于測試
IPv6
的域名,讀者可以使用
ping
命令或例程
3-9
來測試這些域名。
www.jlu6.edu.cn(吉林大學(xué))
www6.usst.edu.cn(上海理工大學(xué))
www.fudan6.edu.cn(復(fù)旦大學(xué))
在訪問這些域名之前,本機(jī)必須使用上述的方法或命令行安裝
IPv6
,否則
getByName
方法將拋出
UnknownHostException
異常。
運(yùn)行結(jié)果:
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
本機(jī)地址: 192.168.18.10
本機(jī)地址: 192.168.83.1
本機(jī)地址: 192.168.189.1
本機(jī)地址: 193.10.10.10
本機(jī)地址: 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1
在上面的運(yùn)行結(jié)果中的
IP
地址
192.168.18.10
和
192.10.10.10
是和本機(jī)網(wǎng)卡綁定的兩個
IP
,而
192.168.83.1
和
192.168.189.1
是
VMware
虛擬機(jī)軟件在本機(jī)安裝的兩個虛擬網(wǎng)卡的地址。最后一個
IPv6
地址
0:0:0:0:0:0:0:1
是代表本機(jī)的
IPv6
網(wǎng)址,相當(dāng)于
IPv4
地址的
127.0.0.1
。讀者可以使用如下命令行添加
IPv6
地址和刪除
IPv6
:
添加 IPv6 地址
刪除 IPv6
注意:安裝IPv6不需要重新啟動計(jì)算機(jī),但添加IPv6地址或刪除IPv6后,必須重新啟動計(jì)算機(jī)才能生效。
國內(nèi)最棒的Google Android技術(shù)社區(qū)(eoeandroid),歡迎訪問!
《銀河系列原創(chuàng)教程》 發(fā)布
《Java Web開發(fā)速學(xué)寶典》 出版,歡迎定購
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
