Java InetAddress 类

Java InetAddress 类表示 IP 地址。java.net.InetAddress 类提供了一些方法来获取任何主机名的 IP,例如 www.javatpoint.com、www.google.com、www.facebook.com 等。

IP 地址由 32 位或 128 位无符号数表示。InetAddress 的实例表示具有相应主机名的 IP 地址。有两种类型的地址:单播和组播。单播是单个接口的标识符,而组播是一组接口的标识符。

此外,InetAddress 具有缓存机制,用于存储成功和失败的主机名解析。

IP 地址

  • IP 地址通过数值表示来帮助标识网络上的特定资源。
  • 大多数网络将 IP 与 TCP(传输控制协议)结合使用。它在目标和源之间建立了一个虚拟桥梁。

IP 地址有两个版本:

IPv4

IPv4 是主要的互联网协议。它是在 1983 年在 ARAPNET 上部署的第一个 IP 版本。它是一种广泛使用的 IP 版本,用于使用寻址方案在网络上区分设备。使用 32 位寻址方案来存储 232 个地址,即超过 400 万个地址。

IPv4 的特点:

  • 它是一种无连接的协议。
  • 它使用较少的内存,并且可以使用基于类的寻址方案轻松记住地址。
  • 它还提供视频会议和库。

IPv6

IPv6 是最新版本的互联网协议。它旨在满足更多的互联网地址需求。它提供了解决 IPv4 中存在的问题的解决方案。它提供了 128 位地址空间,可用于形成 340 个不可思议的唯一 IP 地址的网络。IPv6 也被称为 IPng(下一代互联网协议)。

IPv6 的特点:

  • 它具有有状态和无状态两种配置。
  • 它支持服务质量(QoS)。
  • 它具有分层寻址和路由基础设施。

TCP/IP 协议

  • TCP/IP 是一种通信协议模型,用于通过互联网连接设备。
  • TCP/IP 协助进行寻址、传输、路由和接收互联网上的数据包。
  • 在该通信模型中使用的两个主要协议是:

    1. TCP 即传输控制协议。TCP 提供了在网络上创建通信通道的方式。它还帮助发送方和接收方传输数据包。
    2. IP 即互联网协议。IP 为连接到互联网上的节点提供地址。它使用网关计算机检查 IP 地址是否正确,并正确转发消息。

Java InetAddress 类的方法

MethodDescription
public static InetAddress getByName(String host) throws UnknownHostException它返回包含 LocalHost IP 和名称的 InetAddress 实例。
public static InetAddress getLocalHost() throws UnknownHostException它返回包含本地主机名和地址的 InetAddress 实例。
public String getHostName()它返回 IP 地址的主机名。
public String getHostAddress()它以字符串格式返回 IP 地址。

Java InetAddress 类示例

让我们看一个 InetAddress 类的简单示例,获取 www.javatpoint.com 网站的 IP 地址。

InetDemo.java

import java.io.*;  
import java.net.*;  
public class InetDemo{  
public static void main(String[] args){  
try{  
InetAddress ip=InetAddress.getByName("www.javatpoint.com");  
  
System.out.println("Host Name: "+ip.getHostName());  
System.out.println("IP Address: "+ip.getHostAddress());  
}catch(Exception e){System.out.println(e);}  
}  
}  

输出:

Host Name: www.javatpoint.com
IP Address: 172.67.196.82

演示 InetAddress 类方法的程序

InetDemo2.java

import java.net.Inet4Address;  
import java.util.Arrays;  
import java.net.InetAddress;  
public class InetDemo2  
{  
public static void main(String[] arg) throws Exception  
{  
InetAddress ip =  Inet4Address.getByName("www.javatpoint.com");  
InetAddress ip1[] = InetAddress.getAllByName("www.javatpoint.com");  
byte addr[]={72, 3, 2, 12};  
System.out.println("ip : "+ip);  
System.out.print("\nip1 : "+ip1);  
InetAddress ip2 =  InetAddress.getByAddress(addr);  
System.out.print("\nip2 : "+ip2);  
System.out.print("\nAddress : " +Arrays.toString(ip.getAddress()));  
System.out.print("\nHost Address : " +ip.getHostAddress());  
System.out.print("\nisAnyLocalAddress : " +ip.isAnyLocalAddress());  
System.out.print("\nisLinkLocalAddress : " +ip.isLinkLocalAddress());  
System.out.print("\nisLoopbackAddress : " +ip.isLoopbackAddress());  
System.out.print("\nisMCGlobal : " +ip.isMCGlobal());  
System.out.print("\nisMCLinkLocal : " +ip.isMCLinkLocal());  
System.out.print("\nisMCNodeLocal : " +ip.isMCNodeLocal());  
System.out.print("\nisMCOrgLocal : " +ip.isMCOrgLocal());  
System.out.print("\nisMCSiteLocal : " +ip.isMCSiteLocal());  
System.out.print("\nisMulticastAddress : " +ip.isMulticastAddress());  
System.out.print("\nisSiteLocalAddress : " +ip.isSiteLocalAddress());  
System.out.print("\nhashCode : " +ip.hashCode());  
System.out.print("\n Is ip1 == ip2 : " +ip.equals(ip2));  
}  
}  

输出:

1.png

在上面的 Java 代码中,演示了 InetAdress 类的各种布尔方法。

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想