java基础·杂(InetAddress)

在了解DNS解析时,缓存方面,再具体到java上,于是记录下InetAddress

java的JVM会缓存DNS的解析结果,这个缓存在InetAddress类里完成InetAddress一旦得到一个给定主机的地址,就会缓存起来,即使重新定义一个InetAddress类,也不会重新再获取一次,而是直接从缓存中获取。并且有两种缓存策略,一种是:正确的解析结果缓存,另一种是:失败的解析结果缓存。分别由java.security文件的networkaddress.cache.ttl和networkaddress.cache.negative.ttl完成,默认值为-1(永久),10(缓存10秒)

注:如果用InetAddress解析域名,请使用单利模式,不然每次都要创建新的实例(对象),非常消耗性能

InetAddres

package haizhu.com.InetDemo;
 
import java.net.InetAddress;
 
public class InetAddressDemo {
	public static void main(String[] args) throws Exception{
		InetAddress locAdd = null;
		InetAddress remAdd = null;
		locAdd = InetAddress.getLocalHost();					        //得到本地InetAddress对象
		remAdd = InetAddress.getByName("www.baidu.com");				//取得远程InetAddress对象
		System.out.println("本机IP地址:"+locAdd.getHostAddress());			//得到本地IP地址
		System.out.println("百度IP地址:"+remAdd.getHostAddress());			//得到百度IP地址
		System.out.println("本机是否可达:"+locAdd.isReachable(5000));
	}
}
本机IP地址:192.168.1.109
百度IP地址:115.239.210.26
本机是否可达:true




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值