2010-03-18 6 views

Répondre

1

Si vous voulez juste une adresse IP, vous pouvez utiliser InetAddress (bien que l'API ne précise pas quels types d'hôtes cela correspond):

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

Vous pouvez ensuite utiliser getAddress() pour les octets bruts de l'adresse IP ou getHostAddress() pour une représentation chaîne formatée de l'adresse IP.

Si vous êtes à la recherche d'un type spécifique d'enregistrement (tels que les enregistrements MX) voici un extrait que je trouve sur 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()); 
    } 
}