2010-03-18 39 views

回答

1

如果你只是想你可以使用的InetAddress任何IP地址(雖然API不指定將匹配什麼類型的主機):

InetAddress[] addresses = java.net.InetAddress.getAllByName(String host) 

然後可以使用的getAddress()的原始字節對於IP地址的格式化字符串表示形式的IP地址或getHostAddress()。

如果您正在這裏尋找特定類型的記錄(如MX記錄)是一個片段我上this webpage

import java.util.Hashtable; 
import javax.naming.*; 
import javax.naming.directory.*; 

public class MXLookup { 
    public static void main(String args[]) { 
    if(args.length == 0) { 
     System.err.println("Usage: MXLookup host [...]"); 
     System.exit(99); 
    } 
    for(int i = 0; i < args.length; i++) { 
     try { 
     System.out.println(args[i] + " has " + 
      doLookup(args[i]) + " mail servers"); 
     } 
     catch(Exception e) { 
     System.out.println(args[i] + " : " + e.getMessage()); 
     } 
    } 
    } 

    static int doLookup(String hostName) throws NamingException { 
    Hashtable env = new Hashtable(); 
    env.put("java.naming.factory.initial", 
      "com.sun.jndi.dns.DnsContextFactory"); 
    DirContext ictx = new InitialDirContext(env); 
    Attributes attrs = 
     ictx.getAttributes(hostName, new String[] { "MX" }); 
    Attribute attr = attrs.get("MX"); 
    if(attr == null) return(0); 
    return(attr.size()); 
    } 
} 
發現