我正在为大学项目制作一个简单的网络钓鱼扫描工具。我的一种检测方法包括检查电子邮件中的DNS是否有效,我还想检查他们的年龄。这是我如何检查它们是否存在的示例代码:
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import java.util.Hashtable;
public class DNSExample {
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() );
}
public static void main( String args[] ) {
String [] array = {"google.com","dsad33114sssaxzx.com"} ;
for( int i = 0; i < array.length; i++ ) {
try {
System.out.println( array[i] + " has " +
doLookup( array[i] ) + " mail servers" );
}
catch( Exception e ) {
System.out.println(array[i] + " : " + e.getMessage());
}
}
}
}
我如何修改上述代码以包含年龄检查 对于存在的服务器?
答案 0 :(得分:1)
根据您的描述和评论,您似乎正在尝试收集whois信息。
公共课WhoisIt {
public static final String WHOIS_SERVER = "whois.internic.net";
public static final int WHOIS_PORT = 43;
public static void main(String[] args) throws Exception {
String nameToQuery = "avajava.com";
WhoisClient whoisClient = new WhoisClient();
whoisClient.connect(WHOIS_SERVER, WHOIS_PORT);
String results = whoisClient.query(nameToQuery);
System.out.println(results);
}
}
祝你好运
答案 1 :(得分:1)
我认为你选择的问题在一般情况下无法解决......使用当前的互联网标准:
总结:你在这个空间中实现真正有效的东西的机会目前很低。您可能希望实现的最佳目标可能是基于屏幕抓取一个或两个WHOIS服务。
这可能会在几年内发生变化,但这对您当前的项目没有任何帮助。