Java提供InetAddress类来封装IP地址或域或名。InetAddress类有两个子类:Inet4Address和Inet6Address,分别用于封装4个字节的IP地址和6个字节的IP地址。InetAddress内部对地址数字进行隐藏,用户不需要了解实现地址的细节,只需了解如何调用相应的方法即可。
InetAddress类无构造方法,因此不能直接创建其对象,而是通过该类的静态方法创建一个InetAddress对象或InetAddress数组。InetAddress类常用方法如下

InetAddress常用方法
方法 功能描述
public static InetAddress getLocalHost() 获取本机对应的InetAddress对象
public static InetAddress getByName(String host) 根据主机获得对应的InetAddress对象,参数host可以是IP地址或域名
public static InetAddress[] getAllByName(String host) 根据主机获得对应的InetAddress对象
public static InetAddress getByAddress(byte[] addr) 获取addr所封装的IP地址对应的Inet Address对象
public  String getCanonicalHostName() 获取此IP地址的全限定域名
public bytes[] getHostAddress() 获取该InetAddress对象对应的IP地址字符串
public String getHostName() 获得该InetAddress对象的主机名称
public boolean isReachable(int timeout) 判断是否可以到达该地址

示例代码

import java.net.InetAddress;
import java.net.UnknownHostException;public class InetAddressDemo {public static void main(String[] args) {try{//获取本机地址信息InetAddress localIp=InetAddress.getLocalHost();System.out.println("localIp.getCanonicalHostName()="+ localIp.getCanonicalHostName());System.out.println("localIp.getHostAddress()="+ localIp.getHostAddress());System.out.println("localIp.getHostName()="+ localIp.getHostName());System.out.println("localIp.toString()="+localIp.toString()); System.out.println("localIp.isReachable(5000)="+ localIp.isReachable(5000));System.out.println("====================================");//获取指定域名地址信息InetAddress baiduIp = InetAddress.getByName("www.baidu.com");System.out.println("baiduIp.getCanonicalHostName()="+ baiduIp.getCanonicalHostName());System.out.println("baiduIp.getHostAddress()="+ baiduIp.getHostAddress());System.out.println("baiduIp.getHostName()="+ baiduIp.getHostName());System.out.println("baiduIp.toString()="+baiduIp.toString());System.out.println("baiduIp.isReachable(5000)="+ baiduIp.isReachable(5000));System.out.println("====================================");//获取指定原始IP地址信息InetAddress ip = InetAddress.getByAddress(new byte[]{127,0,0,1});// InetAddress ip = InetAddress.getByName("127.0.0.1");System.out.println("ip.getCanonicalHostName()="+ ip.getCanonicalHostName());System.out.println("ip.getHostAddress()= "+ ip.getHostAddress()); System.out.println("ip.getHostName()="+ ip.getHostName()); System.out.println("ip.toString()="+ ip.toString()); System.out.println("ip.isReachable(5000)="+ ip.isReachable(5000));}catch(UnknownHostException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}}
}

运行结果

上述代码分别获取本机、指定域名以及指定 IP地址的InetAddress对象。其中,调用 getLocalHostO可以获取本机InetAddress对象;调用getByName()可以获取指定域名的 InetAddress对象;

调用getByAddress()可以获取指定IP地址的InetAddress对象,该方法的参数使用字节数组存放IP地址。也可以直接通过 getByName()获取指定IP地址的InetAddress对象,此时IP地址作为字符串即可,即下面两个语句是等价的

InetAddress ip = InetAddress.getByAddress(new byte[]{127,0,0,1});
// InetAddress ip = InetAddress.getByName("127.0.0.1");

InetAddress类常用方法相关推荐

  1. [网络编程]InetAddress类的实例化

    /*一.网络编程中有两个主要的问题:1.如何准确的定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效的进行数据传输二.网络编程中的两个要素:1.IP和端口号2.提供网络通信协议 ...

  2. P620 网络编程概述、IP的理解与InetAddress类的实例化

    IP的理解与InetAddress类的实例化 /* 一.网络编程中有两个主要的问题: 1.如何准确地定位网络上一台或多台主机:定位主机上的特定的应用 2.找到主机后如何可靠高效地进行数据传输二.网络编 ...

  3. Java基础-Date类常用方法介绍

    Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...

  4. Java网络编程之IP地址和InetAddress类

    Java语言的优势之一是Java程序能访问网络资源.Java提供一系列的类支持Java程序访问网络资源. TCP/IP协议和IP地址 为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TC ...

  5. Java 利用InetAddress类确定特殊Ip地址

    IP地址分为普通地址和特殊地址.在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址. 一.isAny ...

  6. java ip吸附_IP层的封装(Java的InetAddress类的C++实现)

    IP 层的封装 C++ 通用框架的设计 作者: naven 1 IP 层封装介绍 TCP/UDP 是网络编程的基础技术,分别代表面向连接的稳定的网络通信技术和非连接方式的广播形式的网络通信技术,它们都 ...

  7. java基础-BigDecimal类常用方法介绍

    java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...

  8. 文件类常用方法 c# 1614531951

    文件类常用方法 c# 1614531951 方法 用法 File.方法名(参数) 文件是否存在 复制操作 移动文件 删除文件 注,删除文件是永久删除,不会进回收站

  9. 04 能够使用String类常用方法操纵字符串 0214

    04 能够使用String类常用方法操纵字符串 0214 1 2 3 4

最新文章

  1. 导频 matlab,v06_03_dem_2up_arrange.m 源代码在线查看 - 完美的OFDM仿真程序MATLAB(带导频),可直接运行 资源下载 虫虫电子下载站...
  2. 通过 .gitlab-ci.yml配置任务-官方配置文件翻译
  3. 用反向传导做分子模拟:苯胺(C6H5NH2)和硝基苯(C6H5NO2)
  4. java-第九章-循环结构进阶-三个班级每班4位同学成绩大于85的算平均分.
  5. MySQL 5.7.18 zip 文件安装过程
  6. HTML <dfn> 标签的简单介绍
  7. Myeclipse使用DB Browser连接数据库错误:OPTION SQL_SELECT_LIMIT=DEFAULT
  8. netty系列之:使用UDP协议
  9. 从字节码看java中 this 的隐式传参
  10. 【转】python模块分析之collections(六)
  11. 【虚拟机ubuntu设置ssh】ssh连不上问题解决方法
  12. mysql——数据库事务(C#代码)
  13. 用Siamese和Dual BERT来做多源文本分类
  14. java script应用领域_JavaScript的应用
  15. jQuery课堂测验
  16. DBA,六个灾难恢复等级你都知道吗?
  17. hbase常用命令及操作
  18. 读书笔记(创业维艰)
  19. 图片像素低,图片模糊怎么变清晰?
  20. 分组数据方差公式_用Excel算分组方差《excel怎么求分组的数据的标准差》

热门文章

  1. python使用Canny算法和HoughCiecle算法实现圆的检测与定位
  2. Java毕设项目-医药信息管理系统
  3. 一文读懂RFID固定资产管理软件
  4. unity steamworksdk简单接入
  5. python-opencv 读取摄像头并保存为.mp4视频 及 VideoCapture()的使用
  6. 电脑内存条频率怎么查看
  7. 本软件仅供学习交流,如作他用所承受的法律责任一概与作者无关(下载使用即代表你同意上述观点)
  8. java秒表计时器_Java实现的计时器【秒表】功能示例
  9. 玩客云刷ARMBIAN当服务器过程记录
  10. Android .9