首页 > Java > java教程 > 正文

Java Inet地址

PHPz
发布: 2024-08-30 15:39:39
原创
898 人浏览过

java InetAddress 用于指定 IP 地址。 IP 地址是分配给网络中机器的唯一数字标签。对于 IPv4,IP 地址指定为 32 位;对于 IPv6 地址,指定为 128 位。 InetAddress 的实例根据创建期间是否执行主机名解析来指定作为主机名的 IP 地址。地址有两种类型:单播和组播。单个接口由单播地址标识,一组接口由多播地址标识。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

java中的InetAddress类内置于java的java.net.InetAddress包中。

InetAddress 类可用于获取任何主机的 IP 地址,例如 www.educba.com、www.google.com 等。常用的 IP 地址是 IPv4,即“版本 4”。考虑一个 IP 地址的示例,它可能看起来像 –

65.172.248.170

上面的地址包含四个数字,每个数字由三个数字组成,并以“.”(单点)分隔。这四个数字的范围是 0 到 255。

InetAddress 类成员函数

InetAddress 类不包含任何构造函数,但包含一些函数作为 InetAddress 类成员函数。

成员Java 函数InetAddress

  1. public static InetAddressgetByAddress(String host, byte[] addr) throws UnknownHostException – 此静态函数返回 InetAddress 的对象,其中包含主机名和 IP 地址作为传递的参数。 host 参数可以是字符串格式的 IP 地址,也可以是机器名称,例如 www.educba.com。
  2. public static InetAddressgetByName(String host) – 此静态函数返回指定主机的 InetAddress 对象。其中参数host为指定主机名。
  3. public static InetAddress[] getAllByName(String host) – 此静态函数返回指定主机的 InetAddress 对象数组。
  4. public static InetAddressgetLoopbackAddress() – 此静态函数返回 Loopback 类型的 InetAddress 对象。
  5. public static InetAddressgetLocalHost() throws UnknownHostException – 此静态函数返回本地主机的 InetAddress 对象。
  6. public byte[] getAddress() – 此函数以数组形式返回 InetAddress 对象的 IP 地址。数组存储 IP 地址按字节顺序显示,如 IP 地址中所示。
  7. public String getHostAddress() – 此函数以字符串格式返回 IP 地址。
  8. public boolean isReachable(int timeout)throws IOException – 如果 IP 地址可达,则此函数返回 true,而 timeout 参数指定调用中止后的时间,并导致 false值。
  9. public boolean isReachable(NetworkInterfacenetif, intttl, int timeout) throws IOException – 此函数重载了 isReachable() 函数。其中 netif 表示用于检查可达性的网络接口,ttl 表示退出网络之前 echo 数据包的跳数,并且由于 timeout 参数指定了此后的时间,因此调用将被中止。
  10. public String getHostName() – 此函数返回 IP 地址的主机名。
  11. public String getCanonicalHostName() – 此函数返回 IP 地址的完全限定域名。
  12. public String toString() –此函数表示字符串格式的 IP 地址。
  13. public boolean isAnyLocalAddress() – 如果 InetAddress 对象地址是本地地址,则此函数返回 true。
  14. public boolean isLinkLocalAddress() – 如果 InetAddress 对象地址是链接本地地址,则此函数返回 true。
  15. public boolean isLoopbackAddress() – 如果 InetAddress 对象地址是环回地址,则此函数返回 true。
  16. public boolean isMCGLoabal() – 如果 IP 多播地址具有全局范围,则此函数返回 true。
  17. public boolean isMCLinkLocal() – 如果 IP 多播地址具有链接范围,则此函数返回 true。
  18. public boolean isMCNodeLocal() – 如果 IP 多播地址具有节点范围,则此函数返回 true。
  19. public boolean isMCOrgLoacal() – 如果 IP 多播地址具有组织范围,则此函数返回 true。
  20. public boolean isMCSiteLocal() – 如果 IP 多播地址具有站点范围,则此函数返回 true。
  21. public boolean isMulticastAddress() – 如果 IP 地址是前四位为 1110 的多播地址,则此函数返回 true。
  22. public boolean isSiteLocalAddress() – 如果 IP 地址是站点本地地址,则此函数返回 true。
  23. public int hashCode() – 此函数返回 IP 地址哈希码。
  24. public boolean equals(Object obj) – 如果 IP 地址与传递的 IP 地址相同,则此函数返回 true。

java 中 InetAddress 类的示例

接下来,我们编写 java 代码来更清楚地理解 InetAddress 类,在下面的示例中,我们使用上面讨论的 URL 和该对象中的一些函数创建一个 InetAddress 对象 –

示例#1

代码:

import java.io.IOException;
import java.util.Arrays;
import java.net.InetAddress;
public class Demo
{
public static void main( String[] arg) throws IOException
{
InetAddress ip = InetAddress.getByName("www.educba.com");
byte addr[] = { 65, 2, 0, 1};
System.out.print("iptoString : " + ip.toString());
System.out.print("\ngetAllByName : " + ip.getAllByName("www.educba.com"));
InetAddress ips[] = InetAddress.getAllByName("www.educba.com");
System.out.println("IP Address");
for (InetAddress add:ips)
System.out.println(add.getHostAddress());
// function getByName()
System.out.print("\ngetByName : " + ip);
// function getByAddress()
System.out.print("\ngetByAddress : " +InetAddress.getByAddress(addr));
// function getLocalHost()
System.out.print("\ngetLocalHost : " +InetAddress.getLocalHost());
// function getLoopbackAddress()
System.out.print("\ngetLoopbackAddress : " +InetAddress.getLoopbackAddress());
// function getAllByName() which returns all ip addresses of google.com
System.out.print("\nGoogleip addresses : " + Arrays.toString(InetAddress.getAllByName("www.google.com")));
// function isReachable()
System.out.print("\nip address isReachable : " +ip.isReachable(50));
// function getHostname()
System.out.print("\nip address hostname :" +ip.getHostName());
// function getCanonicalHostname()
System.out.print("\nip address CanonicalHostname : " + ip.getCanonicalHostName());
}
}
登录后复制

输出:

Java Inet地址

接下来,我们为 InetAddress 类编写 java 代码,其中我们在 InetAddress 对象上应用剩余的布尔函数 –

示例#2

代码:

import java.net.Inet4Address;
import java.util.Arrays;
import java.net.InetAddress;
public class Demo
{
public static void main(String[] arg) throws Exception
{
InetAddress ip =  Inet4Address.getByName("www.educba.com");
InetAddress ip1[] = InetAddress.getAllByName("www.educba.com");
byte addr[]={68, 5, 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));
}
}
登录后复制

输出:

Java Inet地址

结论

InetAddress 是 java 中的内置类,可在 java.net.InetAddress 包中使用。它用于指定网络中机器的IP地址。我们讨论的上述方法可用于获取有关 IP 地址的更多信息。

以上是Java Inet地址的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板