1.如何实现
通过域名获取ip,通过ip获取域名,还是通过InetAddress这个类来实现的,代码如下。
public static void main(String[] args) throws UnknownHostException {
//通过域名获得ip地址
String domain="www.baidu.com";
InetAddress inetAddr=InetAddress.getByName(domain);
System.out.println(domain+"对应ip为:"+inetAddr.getHostAddress());
//通过ip地址获得域名
System.out.println(getCanonicalNameByIp("127.0.0.1"));
}
/**
* 通过ip获得域名
* @param ip
* @return
* @throws UnknownHostException
*/
public static String getCanonicalNameByIp(String ip) throws UnknownHostException {
String[] ipStr=ip.split("[.]");
byte[] ipBytes=new byte[4];
for(int i=0;i<4;i++){
int m=Integer.parseInt(ipStr[i]);
ipBytes[i]=(byte)(m&0xff);
}
InetAddress inetAddressByIp=InetAddress.getByAddress(ipBytes);
return inetAddressByIp.getCanonicalHostName();
}