Я создаю программу, чтобы перечислить всю запись MX домена. Сначала он работал нормально, но по сравнению с онлайн-инструментом http://mxtoolbox.com/. Есть домен, в котором программа не может получить запись MX, пока MXToolbox может.Список записей DNS DNSLookup MX. Как MXToolBox
Я не уверен, в чем причина или какая-либо конфигурация, которая требуется.
Большое спасибо;
Вот мой код.
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.InitialDirContext;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Hashtable;
public class DNSLookup
{
private InitialDirContext iDirC;
public DNSLookup()
{
Hashtable<String, String> env = new Hashtable<String, String>();
//env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
//env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.dns.DnsContextFactory");
//env.put(Context.PROVIDER_URL, "dns://google.com");
// get the default initial Directory Context
try {
iDirC = new InitialDirContext(env);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void lookup (String host, String record)
{
InetAddress inetAddress;
try {
inetAddress = InetAddress.getByName(host);
// show the Internet Address as name/address
System.out.println(inetAddress.getHostName() + " " + inetAddress.getHostAddress());
// get the DNS records for inetAddress
Attributes attributes = iDirC.getAttributes("dns:\\"+inetAddress.getHostName());
// get an enumeration of the attributes and print them out
//NamingEnumeration<?> attributeEnumeration = attributes.getAll();
/* while (attributeEnumeration.hasMore())
{
System.out.println("" + attributeEnumeration.next());
}
attributeEnumeration.close();*/
Attribute mxRecord = attributes.get(record);
for (int i=0; i<mxRecord.size();i++)
System.out.println(mxRecord.get(i));
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
DNSLookup looker = new DNSLookup();
looker.lookup("truetech.com", "MX");
}
}
Вышеуказанный домен будет выдавать NullPointer, если нет записи MX. Пока MXToolBox выдаст один.
Было бы более полезно, если бы вы могли извлечь соответствующую информацию из ответа, на который вы ссылались (сохраняя ссылку). – cpburnz
Существует определенное положение для этого: пометите вопрос как дубликат вопроса, на который вы ссылаетесь. Тогда этот вопрос можно закрыть как дубликат (если согласны пользователи с более высоким разрешением). Вы никогда не должны отвечать на вопрос, просто ссылаясь на другой вопрос SO. – joran