博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java网络编程从入门到精通(7):用getHostAddress方法获得IP地址
阅读量:6625 次
发布时间:2019-06-25

本文共 2613 字,大约阅读时间需要 8 分钟。

 
这个方法用来得到主机的
IP
地址,这个
IP
地址可能是
IPv4
的地址,也可能是
IPv6
的地址。
getHostAddress
方法的定义如下:
public
 String getHostAddress()
无论InetAddress
对象是使用哪种方式创建的,getHostAddress
方法都不会访问DNS
服务器。如果想访问使用IPv6
地址的远程主机,需要在操作系统上安装IPv6
协议。下面是Windows 2003
上安装IPv6
协议的步骤:

第一步:
打开
本地连接
属性对话框。如图1所示

图1 “本地连接”属性对话框

 
第二步:
点击
安装
按钮,出现
选择网络组件类型
对话框,选择
协议
选项后,点击
添加
按钮,出现如图2
选择网络协议
对话框,选择“Microsoft TCP/IP 
版本6”
,最后点击
确定
按钮。
图2  “选择网络协议”对话框
除了使用图形化界面来安装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
注意:安装IPv6不需要重新启动计算机,但添加IPv6地址或删除IPv6后,必须重新启动计算机才能生效。
 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/214761,如需转载请自行联系原作者
你可能感兴趣的文章
程序8
查看>>
TBluetoothLEDevice.UpdateOnReconnect
查看>>
QtTableView 简介
查看>>
腾讯、百度、阿里面试经验—(3)阿里面经
查看>>
Liferay 6开发学习(二十六):数据库连接相关问题
查看>>
【20170506】贝业新兄弟IT总监李济宏:第三方家居物流的IT架构探索
查看>>
poj3517
查看>>
iphone http下载文件
查看>>
poj 1195:Mobile phones(二维树状数组,矩阵求和)
查看>>
Codeforces 433 C. Ryouko's Memory Note
查看>>
java中的Static class
查看>>
实例讲解Linux下的makefile
查看>>
json lib 2.4及其依赖包下载
查看>>
计算机中文核心期刊
查看>>
8148 8168 中移植live55 出现except rtsp 中途莫名的断流
查看>>
【BZOJ】3832: [Poi2014]Rally
查看>>
[转]看懂ExtJS的API
查看>>
推荐15款制作 SVG 动画的 JavaScript 库
查看>>
转:OpenResty最佳实践(推荐了解lua语法)
查看>>
转:CEO, CFO, CIO, CTO, CSO是什么
查看>>