import java.net.*;
import java.io.*;
public class NsLookUp{
public static void main(String[] args){
if(args.length > 0){
for(int i = 0; i < args.length; i++){
System.out.println(lookup(args[i]));
}
}
}
public static String lookup(String host){
InetAddress address;
try{
address = InetAddress.getByName(host);
}
catch(UnknownHostException ex){
return "Cannot find" + host;
}
if(isHostName(host)){//host name
return address.getHostAddress();
}
else{ //IP address
return address.getHostName();
}
}
public static boolean isHostName(String host){
//IPv6
if(host.indexOf(':') != -1) return false;
char[] ch = host.toCharArray();
for(int i = 0; i < ch.length; i++){
if(!Character.isDigit(ch[i])){
//host name
if(ch[i] != '.') return true;
}
}
//不是host name就是IP
return false;
}
}
參考資料:Java網路程式設計 第三版(歐萊禮出版) 第六章範例
2012年12月11日 星期二
簡易nslookup
在命令列輸入主機名稱,印出IP位址
輸入IP位址,印出主機名稱
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言