InetAddress
类InetAddress。
在java.net包下面。
InetAddress类的对象用于IP地址和域名,该类提供以下方法:
getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40;
String getHostName():获取InetAddress对象的域名;
String getHostAddress():获取InetAddress对象的IP地址;
getLocalHost():获得一个InetAddress对象,该对象含有本地机的域名和IP地址。
private void test()
{
try {
InetAddress locAdd = InetAddress.getLocalHost(); //得到本地InetAddress对象
/* get www.baidu.com's ip */
InetAddress remAdd = InetAddress.getByName("www.baidu.com"); //取得远程InetAddress对象
System.out.println("本机IP地址:" + locAdd.getHostAddress()); //得到本地IP地址
System.out.println("百度IP地址:" + remAdd.getHostAddress()); //得到百度IP地址
System.out.println("本机是否可达:" + locAdd.isReachable(10000)); //10000是超时时间,10s
/*
打印:
本机IP地址:192.168.1.109
百度IP地址:115.239.210.26
本机是否可达:true
*/
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
很多情况是,某一域名对应的主机IP是可能有多个的,我们也可以一一的取回来。如下:
private void test2()
{
try {
/* 百度可能有多个IP地址,解析回来,所以我们可以用一个数组装起来 */
InetAddress[] addrs = InetAddress.getAllByName("www.baidu.com");
if (addrs != null && addrs.length > 0) {
for (InetAddress addr : addrs) {
System.out.println("--->" + addr.getHostAddress());
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
————————————————
版权声明:本文为CSDN博主「姚镜堂」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_16628781/article/details/54019950