一、InetAddress
java.net.InetAddress类是java对IP地址的高层表示。通过主机查找IP的时候会查询DNS服务器,开销会很大,因此InetAddress类会缓存中查找。对于DNS的缓存时间可以用系统属性networkaddress.cache.ttl指定成功的DNS结果在java缓存中保留的时间(秒数),networkaddress.cache.negative.ttl指定不成功的查找结果缓存时间。
该类没有构造函数,提供了以下静态方法构造。
静态方法摘要----------
InetAddress getByName(String host)
host----可以是主机名。例如"www.baidu.com"或者直接IP地址“180.97.33.107”。如果主机名不存在则报java.net.UnknownHostException异常
InetAddress[] getAllByName(String host)
host----可以是主机名。例如"www.baidu.com"或者直接IP地址“180.97.33.107”。返回多个地 址,
有的主机名可以存在多个地址。
InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com"); for (InetAddress address : allByName) { System.out.println(address); }
输出结果如下:
www.baidu.com/180.97.33.107
www.baidu.com/180.97.33.108
InetAddress getByAddress(byte[] addr)
InetAddress getByAddress(String host, byte[] addr)
这两个方法不能保证主机一定存在,或者主机名能正确的映射IP地址。
InetAddress.getLocalHost()
这个方法尝试连接DNS来得到一个真正的主机名和IP地址。不过如果失败,他就返回回送地址。
主要方法摘要---------
String getHostName()
String getCanonicalHostName()
getHostName只是在不知道主机名的时候才会联系DNS,但是getCanonicalHostName知道主机名也会联系DNS。另外一个区别是getHostName返回主机的别名,而getCanonicalHostName返回主机的名字,之所以要使用主机别名,是因为有时主机名可能比较复杂,如Oracle官方网站的主机名bigip-otn-portal.oracle.com,因此,为了使用户访问网站更方便,就增加了更简单的主机别名,如www.oracle.com。一个主机名可能对应多个主机别名,如oracle.com也是Oracle的主机别名。在IE的地址栏中输入http:// bigip-otn-portal.oracle.com和http://oracle.com都可以访问Oracle官方网站。但我们发现,有很多网站通过主机名无法访问,只有通过一些别名才能访问,如126只能通过www.126.com和126.com两个主机别名访问,而不能通过它的主机名zz-9-77-a8.bta.net.cn来访问。这是因为在服务端通过HTTP协议做了限制.
String getHostAddress()
byte[] getAddress()
可以通过byte的长度来区分Ip地址为ipv4或者ipv6。另外返回的字节是无符号的,值大于127的时候会当做负数。
InetAddress address = InetAddress.getByName("www.oracle.com"); System.out.println(address.getHostAddress()); System.out.println(Arrays.toString(address.getAddress()));
输出结果:
23.3.200.18
[23,3,-56, 18]
地址类型:
boolean isAnyLocalAddress()
ipv4的通配地址是0:0:0:0。ipv6的通配地址是:0:0:0:0:0:0:0:0
boolean isLoopbackAddress()
是否为回送地址,ipv4的地址为127.0.0.1。ipv6是0:0:0:0:0:0:0:1
boolean isMulticastAddress()
是否为组播地址:ipv4址覆盖范围为224.0.0.0~239.255.255.255。ipv6意FF开头。
isReachable(int timeout)
boolean isReachable(NetworkInterface netif, int ttl,int timeout)
可以测试一个特定节点对当前主机是否可达,这些方法尝试使用tranceroute查看地址是否可达。如果主机在timeout内响应,则方法返回true;否则返回false。
二、NetworkInterface
表示一个本地IP地址,可以是一个物理接口,也可以是一个虚拟接口。
静态方法:
NetworkInterface getByName(String name)
name----例如eth0、lo
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) { NetworkInterface nextElement = networkInterfaces.nextElement(); System.out.println(nextElement); Enumeration<InetAddress> inetAddresses = nextElement.getInetAddresses(); while (inetAddresses.hasMoreElements()) { System.out.println(inetAddresses.nextElement()); } }
相关推荐
Java网络编程是开发基于互联网应用的关键技术之一,而理解Internet地址是网络编程的基础。本文将深入探讨IP地址的原理和应用,尤其是IPv4和IPv6这两种主要的IP地址类型。 首先,IP地址是互联网上每个设备独一无二的...
标题中的“行业分类-设备装置-对无线电台和相关的因特网地址进行书签标记的系统和方法”表明,这是一个关于无线通信技术的专题,特别是涉及到无线电台与互联网结合的应用。这种技术通常涵盖在物联网(IoT)或者智能...
连接到Internet上计算机都有一个称为Internet地址或IP地址的的数来标识。由于IP很难记住,人们设计了域名系统(DNS),DNS可以将人们可以记忆的主机名与计算机可以记忆的IP地址联系在一起。通常一台主机映射一个IP...
IP地址的管理由因特网地址分配机构(IANA)进行三级管理,负责全球IP地址和域名的分配。由于IP地址资源的限制,特别是IPv4地址的耗尽,各国都在寻求解决方案,比如IPv6的推广使用,以及通过NAT(网络地址转换)技术...
13. **Internet地址和域名**:Internet地址主要指IP地址,是网络中每个设备的唯一标识,分为IPv4和IPv6两种形式。IPv4地址由32位二进制组成,通常用4个十进制数表示,如X.X.X.X。 14. **IP地址分类**:IP地址根据首...
IP地址是Internet网络的核心组成部分,它是互联网协议(Internet Protocol)中的32位唯一标识符,存在于OSI参考模型的第三层——网络层。IP地址的主要功能是为互联网上的每一个设备提供一个独一无二的地址,以便数据...
8. **因特网地址**: - IP地址:标识互联网上每台主机的唯一32位二进制数字,分4段以点分十进制表示。 - 判断IP地址有效性:分四段,用点号分隔,每段在0-255之间。 - IP地址分类:A类、B类、C类,分别适用于大型...
IP 地址是 Internet 地址的两种表示形式之一,IP 地址结构由 32 位长度的二进制数构成,通常以 x.x.x.x 格式表示,每个 x 为 8 位,其值为 0~255。 域名是 Internet 地址的另一种表示形式,是由 TCP/IP 协议集的...
2. 公共Internet地址:公共Internet地址是指在Internet上公开的IP地址,例如61.138.0.93/30。 3. NAT路由器:NAT路由器是指具有NAT功能的路由器,该路由器可以将私有网络地址转换为公共Internet地址。 在使用NAT...
域名地址是便于记忆的、人类可读的Internet地址,它通过DNS(Domain Name System)转换为IP地址。 OSI(Open Systems Interconnection)参考模型是ISO制定的七层通信模型,包括物理层、数据链路层、网络层、传输层...
RPSL扩展的引入,意味着在现有Internet地址分配体系中增加了新的数据结构和查询协议,以提升IP地址注册信息的获取效率和准确性。这可能需要对现有的网络管理工具和系统进行升级或改进,以适应RPSL的新规范。新的RPSL...
1. **域名服务DNS**:DNS(Domain Name System)是因特网上的一项核心服务,它负责将人类易于记忆的域名转换为计算机识别的IP地址,使得用户可以方便地访问网站,而无需记住复杂的数字IP。 2. **远程登录TELNET**:...
IP 保留地址是指在 Internet 协议(IP)中专门保留的一些地址,以供特殊情况下使用,这些地址不能在 Internet 中使用,只能在内部网络中使用。这些地址的使用可以提高网络安全和内部实验等特殊情况下的可靠性。 IP ...
- **配置三**:继续在服务器地址本(`names.nsf`)的“配置文档-MIME-转换选项-外出-当未在文档中定义Internet地址时,请查询所有Notes地址的Internet地址”中,启用这一设置来确保所有原本的Notes地址都能转换为...
在Linux系统上实现的IP伪装,具有Internet地址的那台机器同时也作为 局域网上的防火墙和网关。本地的机器使用防火墙的Internet地址连接到Internet上。实现了IP伪装的防火墙有时也被称为MASQ gates。使用IP伪装,连接...
公有地址由InterNIC(Internet Network Information Center,因特网信息中心)负责分配,用于直接访问互联网。私有地址则为内部使用,不可能直接与WAN(广域网)通信,需通过NAT(网络地址转换)等技术转换为公有...
1. **归属因特网协议地址(Home Internet Protocol Address, HIPA)**:归属地址是指在移动设备(如手机、平板电脑)离开其归属网络时,仍为其保留的IP地址。HIPA通常由用户的固定服务提供商分配,即使用户在漫游时...