package com.example.xiaoshiweixinback.business.config; import okhttp3.Dns; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; public class XDns implements Dns { private long timeout; public XDns(long timeout) { this.timeout = timeout; } @Override public List lookup(final String hostname) throws UnknownHostException { if (hostname == null) { throw new UnknownHostException("hostname == null"); } else { List inetAddresses =new ArrayList<>(); Boolean falg =true; while (falg){ try { FutureTask> task = new FutureTask<>( new Callable>() { @Override public List call() throws Exception { return Arrays.asList(InetAddress.getAllByName(hostname)); } }); new Thread(task).start(); inetAddresses=task.get(timeout, TimeUnit.MILLISECONDS); falg =false; } catch (Exception var4) { continue; } } return inetAddresses; } } }