使用InetAddress类断定特别IP地址ITeye - 凯时娱乐

使用InetAddress类断定特别IP地址ITeye

2019-01-14 05:08:46 | 作者: 寄容 | 标签: 地址,播送,规模 | 浏览: 1625

IP地址分为一般地址和特别地址。在前面的文章中所运用的大多数都是一般的IP地址,在本文中将介绍怎么运用InetAddress类供给的十个办法来断定一个IP地址是否是一个特别的IP地址。

    一、isAnyLocalAddress办法

    当IP地址是通配符地址时回来true,不然回来false.这个通配符地址关于具有多个网络接口(如两块网卡)的计算机十分具有。运用通配符地址能够答应在服务器主机承受来自任何网络接口的客户端衔接。IPv4的通配符地址是0.0.0.0.IPv6的通配符地址是0:0:0:0:0:0:0:0,也能够简写成::。

    二、isLoopbackAddress办法

    当IP地址是loopback地址时回来true,不然回来false.loopback地址就是代表本机的IP地址。IPv4的loopback地址的规模是127.0.0.0 ~ 127.255.255.255,也就是说,只需第一个字节是127,就是lookback地址。如127.1.2.3、127.0.200.200都是loopback地址。IPv6的loopback地址是0:0:0:0:0:0:0:1,也能够简写成::1.咱们能够运用ping指令来测验lookback地址。如下面的指令行所示:

 

ping 127.200.200.200

 运转成果:

 

 

Reply from 127.0.0.1: bytes=32 time 1ms TTL=128 (注:win7下是127.200.200.200)
Reply from 127.0.0.1: bytes=32 time 1ms TTL=128
Reply from 127.0.0.1: bytes=32 time 1ms TTL=128
Reply from 127.0.0.1: bytes=32 time 1ms TTL=128
Ping statistics for 127.200.200.200:
 Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
 Minimum = 0ms, Maximum = 0ms, Average = 0ms

 尽管127.255.255.255也是loopback地址,但127.255.255.255在Windows下是无法ping通的。这是由于127.255.255.255是播送地址,在Windows下对发给播送地址的恳求不做任何呼应,而在其他操作系统上依据设置的不同,可能会得到不同的成果。

    三、isLinkLocalAddress办法

    当IP地址是本地衔接地址(LinkLocalAddress)时回来true,不然回来false.IPv4的本地衔接地址的规模是169.254.0.0 ~ 169.254.255.255.IPv6的本地衔接地址的前12位是FE8,其他的位能够是恣意取值,如FE88::、FE80::ABCD::都是本地衔接地址。

    四、isSiteLocalAddress办法

    当IP地址是区域本地地址(SiteLocalAddress)时回来true,不然回来false.IPv4的地址本地地址分为三段:10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255.IPv6的区域本地地址的前12位是FEC,其他的位能够是恣意取值,如FED0::、FEF1::都是区域本地地址。

    五、isMulticastAddress办法

    当IP地址是播送地址(MulticastAddress)时回来true,不然回来false.经过播送地址能够向网络中的一切计算机发送信息,而不是只向一台特定的计算机发送信息。IPv4的播送地址的规模是224.0.0.0 ~ 239.255.255.255.IPv6的播送地址第一个字节是FF,其他的字节能够是恣意值。关于播送地址的具体内容将在今后的章节中评论。

    六、isMCGlobal办法

    当IP地址是全球规模的播送地址时回来true,不然回来false.全球规模的播送地址能够向Internet中的一切的计算机发送信息。IPv4的播送地址除了224.0.0.0和第一个字节是239的IP地址都是全球规模的播送地址。IPv6的全球规模的播送地址中第一个字节是FF,第二个字节的规模是0E ~ FE,其他的字节能够是恣意值,如FFBE::、FF0E::都是全球规模的播送地址。

    七、isMCLinkLocal办法

    当IP地址是子网播送地址时回来true,不然回来false.运用子网的播送地址只能向子网内的计算机发送信息。IPv4的子网播送地址的规模是224.0.0.0 ~ 224.0.0.255.IPv6的子网播送地址的第一个字节是FF,第二个字节的规模是02 ~ F2,其他的字节能够是恣意值,如FFB2::、FF02:ABCD::都是子网播送地址。

    八、isMCNodeLocal办法

    当IP地址是本地接口播送地址时回来true,不然回来false.本地接口播送地址不能将播送信息发送到发生播送信息的网络接口,即使是同一台计算机的另一个网络接口也不可。一切的IPv4播送地址都不是本地接口播送地址。IPv6的本地接口播送地址的第一个字节是FF,第二个节字的规模是01 ~ F1,其他的字节能够是恣意值,如FFB1::、FF01:A123::都是本地接口播送地址。

    九、isMCOrgLocal办法

    当IP地址是安排规模的播送地址时回来ture,不然回来false.运用安排规模播送地址能够向公司或企业内部的一切的计算机发送播送信息。IPv4的安排规模播送地址的第一个字节是239,第二个字节不小于192,第三个字节不大于195,如239.193.100.200、239.192.195.0都是安排规模播送地址。IPv6的安排规模播送地址的第一个字节是FF,第二个字节的规模是08 ~ F8,其他的字节能够是恣意值,如FF08::、FF48::都是安排规模的播送地址。

    十、isMCSiteLocal办法

    当IP地址是站点规模的播送地址时回来true,不然回来false.运用站点规模的播送地址,能够向站点规模内的计算机发送播送信息。IPv4的站点规模播送地址的规模是239.255.0.0 ~ 239.255.255.255,如239.255.1.1、239.255.0.0都是站点规模的播送地址。IPv6的站点规模播送地址的第一个字节是FF,第二个字节的规模是05 ~ F5,其他的字节能够是恣意值,如FF05::、FF45::都是站点规模的播送地址。

 

下面的代码能够断定一个IP地址是否在上述十种地址类型的规模内:

 

package test;
import java.net.*;
import java.lang.reflect.*;
public class MyNet
 public static void main(String[] args) throws Exception
 if (args.length == 0)
 return;
 InetAddress address = InetAddress.getByName(args[0]);
 Method methods[] = InetAddress.class.getMethods();
 // 以is最初而且没有参数的办法
 for (Method method : methods)
 if (method.getName().matches("is.*") method.getParameterTypes().length == 0)
 if (Boolean.parseBoolean(method.invoke(address).toString()))
 System.out.println(method.getName() + " = true");
}

  测验1

    履行如下指令:

java test.MyNet 224.0.0.1

 运转成果:

isMCLinkLocal = true
isMulticastAddress = true

 测验2

    履行如下指令:

java test.MyNet FFB1::

 运转成果:

isMCNodeLocal = true
isMulticastAddress = true

 假如未输出任何成果,阐明指定的IP地址并不特点上述的十种IP地址类型的规模,仅仅一个一般的IP地址。

 

转至:

http://java.chinaitlab.com/net/782802.html

http://java.chinaitlab.com/net/782802_2.html

 

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章