是否存在PHP函数checkdnsrr
的Java版本?
答案 0 :(得分:1)
如果您只想要任何IP地址,可以使用InetAddress(尽管API没有指定匹配的主机类型):
InetAddress[] addresses = java.net.InetAddress.getAllByName(String host)
然后,您可以将getAddress()用于IP地址的原始字节,或者将getHostAddress()用于IP地址的格式化字符串表示。
如果您正在寻找特定类型的记录(例如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() );
}
}