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




猜你喜欢

转载自blog.csdn.net/gcc_java/article/details/80888533