频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

检测SSH服务是否正常工作代码

来源: 作者:佚名 出处:巧巧读书 2008-04-17 进入讨论组

连接检测SSH服务是否正常工作

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.net.ConnectException;
import java.net.InetAddress;

import java.net.InetSocketAddress;
import java.net.NoRouteToHostException;
import java.net.Socket;
import java.net.UnknownHostException;

public class TestSSH ...{

    public static void main(String[] args)...{

        int retry = 1;
        int timeout = 3000;

        // Port
        //
        int port = 22;

        String strBannerMatch = "SSH";

        // Get the address instance.
        //
        InetAddress ipv4Addr = null;
        try ...{
            ipv4Addr = InetAddress.getByName("fedora.unix-center.net");
        } catch (UnknownHostException e1) ...{
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        // Give it a whirl
        //
        int serviceStatus = -1;
        long responseTime = -1;

        for (int attempts = 0; attempts <= retry && serviceStatus != 1; attempts++) ...{
            Socket socket = null;
            try ...{

create a connected socket

long sentTime = System.currentTimeMillis();

socket = new Socket();
socket.connect(new InetSocketAddress(ipv4Addr, port), timeout);
socket.setSoTimeout(timeout);
System.out.println("SshMonitor: connected to host: " + ipv4Addr + " on port: " + port);
               
// We’re connected, so upgrade status to unresponsive
serviceStatus = -2;

                if (strBannerMatch == null || strBannerMatch.equals("*")) ...{
                    serviceStatus = 1;
                    break;
                }

                BufferedReader rdr = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                // Tokenize the Banner Line, and check the first
                // line for a valid return.
                String response = rdr.readLine();
                responseTime = System.currentTimeMillis() - sentTime;

                if (response == null)
                    continue;
                System.out.println("poll: banner = " + response);
                System.out.println("poll: responseTime= " + responseTime + "ms");

                if (response.indexOf(strBannerMatch) > -1) ...{
                    serviceStatus = 1;
                } else
                    serviceStatus = -1;
            } catch (Exception e) ...{
                e.printStackTrace();
            } finally ...{
                try ...{
                    // Close the socket

 if (socket != null)
                        socket.close();
                } catch (IOException e) ...{
                    e.printStackTrace();
                }
            }
        }

    }

}

更多文章 更多内容请看SSH技术手册SSH安全技术SSH实战应用专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:分析 Tomcat catalina.bat 脚本

较新的文章:Struts 2.0的新特性
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章