0

我有一个小型 Java 程序,它从文本文件中读取 IP 列表,并在循环内创建与 IP 的 ssl 会话。会话可能成功或失败取决于是否在另一端启用了端口 443。

我的问题: 1、如果对方没有开启443端口,会话会失败。问题是我的程序在这里停止并转到异常处理并向我打印错误并结束。我希望程序继续使用下一个 IP 创建下一个会话,依此类推。我怎样才能让它继续并打印出一条消息,说明该 IP 的会话失败?

另一个问题:如何获得启用的密码套件?我试图打印 socket.getEnabledCipherSuites(); 但打印的奇怪文本根本不是一种密码套件。

编辑:

public static void main(String[] argv) {

try{

    while ((there are IPs)   

    {
        try{
            //call for Connect function which has try/catch on it the same way

            }catch (Exception e){
              System.err.println("Error: " + e.getMessage());
          }//catch
    }//end while loop


   catch (Exception e){
  System.err.println("Error: " + e.getMessage());
 }//catch

 }//end void main </i>
4

1 回答 1

2

您的第 1 点似乎是异常处理应该注意的事情:将 all_ips 上的每个迭代都包含在其自己的 try/catch 块中。

你可以从这里的一些多线程和超时中受益匪浅,因为一些防火墙只会默默地丢弃你的 SYN 数据包,让你的扫描工具无限期地等待。

但在您这样做之前,请注意:您将看起来非常像一个恶意工具,它正在扫描网络以查找某些漏洞。如果您过于激进或针对您不认识的人,您可能会遇到管理麻烦。一个线程池或一些类似的技术,以确保您不超过相当数量的连接建立/秒是最低限度的。

于 2012-06-20T13:48:14.903 回答