Java 网络编程学习笔记(二)—— Internet地址

一、InetAddress类

1、InetAddress对象
// InetAddress 类没有公共构造函数,而是通过一系列静态工厂方法
InetAddress address = InetAddress.getByName("www.editor.csdn.net")
// 调用getByName()并提供一个IP地址作为参数时,会为所请求的IP地址创建一个InetAddress对象,而不检查DNS
InetAddress address = 
InetAddress.getByName("192.168.91.199");
// 查找本地机器的地址
InetAddress address = InetAddress.getLocalHost();
// getHostName方法返回一个String,其中包含主机的名字以及这个InetAddress对象表示的IP地址
address.getHostName();
// getCanonicalHostName()与getHostName()类似,getHostName()只有在不知道主机名时,才会联系DNS,
// 而getCanonicalHostName()知道主机名时也会联系DNS
address.getCanonicalHostName();
// 如果地址是通配地址,该方法返回true,否则返回false
address.isAnyLocalAddress();
// 如果地址是回送地址,该方法返回true,否则返回false
address.isLoopbackAddress()
// 如果地址是一个IPv6本地链接地址,该方法返回true,否则返回false
address.isLinkLocalAddress();
// 如果是一个IPv6本地网站地址,该方法返回true,否则返回false
address.isSiteLocalAddress();
// 如果地址是一个组播地址,该方法返回true,否则返回false
address.isMulticastAddress();
// 测试可达性
// 该方法测试一个特定节点对当前主机是否可达,尝试使用traceroute 查看指定地址是否可达,如果在指定时间内响应,返回true,否则返回false
address.isReachable(10000);
// 该方法允许指定从哪个本地网络接口建立连接以及指定生存时间(连接被丢弃前尝试的最大网络跳数)
address.isReachable(NetworkInterface interface, int ttl, int timeout);
/**
只有两个InetAddress对象有相同的IP地址时,才相等,与主机名无关
*/
address.equals(otherAddress)
// hashCode()方法返回的int只根据IP地址来计算,不考虑主机名
address.hashCode();

二、NetworkInterface类

NetworkInterface类表示一个本地IP地址,可以是一个物理接口,也可以是一个虚拟接口

// NetworkInterface 通过静态工厂方法返回与某个网络接口关联的NetworkInterface独享
// getByName()返回一个NetworkInterface对象,表示有指定名字的网络接口
NetworkInterface ni = NetworkInterface.getByName("eth0");
// getByInetAddress()方法返回一个NetworkInterface对象,表示与指定IP地址绑定的网络接口
InetAddress local = InetAddress.getByName("128.0.0.1");
NetworkInterface ni = NetworkInterface.getByInetAddress(local);
// getNetworkInterface()方法返回一个java.util.Enumeration,这会列出本地主机上的所有网络接口
NetworkInterface.getNetworkInterface();
// getInetAddress()返回一个java.util.Enumeration,列出与这个接口绑定的每一个IP地址的InetAddress对象
ni.getInetAddress();
// getName()方法返回某个特定NetworkInterface对象的名
ni.getName();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值