Java——ping & telnet实现

ping & telnet 实现类:

import org.springframework.data.web.JsonPath;

import java.io.IOException;
import java.net.*;

public class PTUtil {
    /***
     *  ping操作
     * @param hostname
     * @param timeout in milliseconds
     * @return
     */
    public static JsonResult pingResult(String hostname,Integer timeout){
        JsonResult jsonResult = new JsonResult();
        try {
            InetAddress address = InetAddress.getByName(hostname);
            boolean flag = address.isReachable(timeout);
            if(flag){
                jsonResult.setMessage("ping结果:the address is reachable.");
            }else{
                jsonResult.setCode(Constants.ResultCode.EXCEPTION);
                jsonResult.setMessage("ping结果:the address is unreachable.");
            }
        } catch (UnknownHostException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("ping结果:UnknownHostException:"+e.getMessage());
        } catch (IOException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("ping结果:IOException:"+e.getMessage());
        }
        return jsonResult;
    }
    /***
     *  telnet 操作
     * @param hostname
     * @param timeout in milliseconds
     * @return
     */
    public static JsonResult telnetResult(String hostname,Integer port,Integer timeout){
        JsonResult jsonResult = new JsonResult();
        try {
            Socket server = new Socket();
            InetSocketAddress address = new InetSocketAddress(hostname,port);
            server.connect(address, timeout);
            server.close();
            jsonResult.setMessage("telnet结果:success!");
        }catch (UnknownHostException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("telnet结果:UnknownHostException:"+e.getMessage());
        } catch (IOException e) {
            jsonResult.setCode(Constants.ResultCode.EXCEPTION);
            jsonResult.setMessage("telnet结果:IOException:"+e.getMessage());
        }
        return jsonResult;
    }
}

相关类:

public class JsonResult {

    private String code;//结果编码
    private String message;//结果描述
    private Object data;

    public JsonResult() {
        this.setCode(Constants.ResultCode.SUCCESS);
        this.setMessage(Constants.ResultCode.SUCCESS.msg());

    }

    public JsonResult(Constants.ResultCode code) {
        this.setCode(code);
        this.setMessage(code.msg());
    }

    public JsonResult(Constants.ResultCode code, String message) {
        this.setCode(code);
        this.setMessage(message);
    }

    public JsonResult(Constants.ResultCode code, String message, Object data) {
        this.setCode(code);
        this.setMessage(message);
        this.setData(data);
    }

    public String getCode() {
        return code;
    }
    public void setCode(Constants.ResultCode code) {
        this.code = code.val();
        this.message = code.msg();
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }
}

public class Constants {
    /***
     *删除状态
     */
    public static enum DeleteStatus{
        NORMAL("0","NORMAL","正常"),DELETE("1","DELETE","删除");
        private DeleteStatus(String value,String name,String desc){
            this.value=value;
            this.name=name;
            this.desc=desc;
        }
        private final String value;
        private final String name;
        private final String desc;

        public String getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

        public String getDesc() {
            return desc;
        }
    }

    /***
     * Result code
     */
    public static enum ResultCode {
        /** 成功 */
        SUCCESS("200", "成功"),
        NULL_DATA("205","无数据"),
        /** 没有登录 */
        NOT_LOGIN("400", "没有登录"),

        /** 发生异常 */
        EXCEPTION("401", "发生异常"),

        /** 系统错误 */
        SYS_ERROR("402", "系统错误"),

        /** 参数错误 */
        PARAMS_ERROR("403", "参数错误 "),

        /** 不支持或已经废弃 */
        NOT_SUPPORTED("410", "不支持或已经废弃"),

        /** AuthCode错误 */
        INVALID_AUTHCODE("444", "无效的AuthCode"),

        /** 太频繁的调用 */
        TOO_FREQUENT("445", "太频繁的调用"),

        /** 未知的错误 */
        UNKNOWN_ERROR("499", "未知错误"), 

        private ResultCode(String value, String msg){
            this.val = value;
            this.msg = msg;
        }

        public String val() {
            return val;
        }

        public String msg() {
            return msg;
        }

        private String val;
        private String msg;
    }

}

原文地址:https://www.cnblogs.com/shea/p/8631789.html

时间: 2024-10-08 14:33:53

Java——ping & telnet实现的相关文章

Java.ping

/*  * @(#)Ping.java    1.2 01/12/13  * Connect to each of a list of hosts and measure the time required to complete  * the connection.  This example uses a selector and two additional threads in  * order to demonstrate non-blocking connects and the m

java操作telnet远程登录

import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.SocketException; import org.apache.commons.net.telnet.TelnetClient; public class Client { public static void main(S

windows几个常见网络命令解析:ping, telnet, ssh, ftp/sftp, netstat, tracert, arp

1.ping 网络层协议,只能判断主机之间是否连接,不能判断端口是否开放. 2.telnet 应用层协议,是Intenet远程登录服务的标准协议和主要形式.登录的账号密码与数据明文传输,不加密. window为了安全考虑,一般禁用此命令,需要自己安装的(控制面板-程序-打开或关闭window功能,之后具体还要查怎么设)点击此查详细 如果安装了telnet,可用来测试端口是否开放:telnet IP:Port 3.ssh (Secure Shell) 建立在应用层和传输层基础上的安全协议,作用同上

如何测试一台主机的IP和端口是否能连通,ping telnet

通过ping 判断一台主机是否开机. 通过:telnet 121.199.167.99 61616  判断一台主机的端口是否能连通. 本机------本地防火墙-------本地路由器------------远程路由器(聚石塔这里做了端口拦截)------------远程防火墙---------远程主机.

[Java]ping或扫描端口的工具类

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.InetSocketAddress; import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util

java打印telnet的任何输出内容

首先,在ServerSocket创建之后,就可以返回一个accept,就是返回一个socket,如果没有socket连接,那么就会阻塞在这里.如果接收到socket连接,那么就会进入循环体开始执行循环部分代码. 首先会调用getInputStream方法来获取输入流,如果没有输入流,那么同样程序会阻塞在这里,如果收到了输入流,那么程序会将input流包装成为DataInputStream对象,然后取一行输出即可. package com.test.net; import java.io.Data

Java 通过telnet协议 操作远程交换机

/**  *@date 2015年2月4日 下午3:15:13  *@author XUQIANG  *@filename TelnetConnection.java  *@package com.merit.monitor.device.parameter.sdk  */ package com.merit.monitor.device.parameter.sdk; import java.io.BufferedReader; import java.io.IOException; impor

java通过telnet远程至windows机器执行dos命令

准备工作,远程windows机器中开启telnet服务,将远程登录用户添加至telnetClients用户组 核心代码: import java.io.IOException; import java.io.InputStream; import java.io.PrintStream;import java.io.UnsupportedEncodingException;import org.apache.commons.net.telnet.TelnetClient;import org.t

ping telnet ssh netstat

1.pingping命令工作在OSI参考模型的第三层-网络层.ping命令会发送一个数据包到目的主机,然后等待从目的主机接收回复数据包,当目的主机接收到这个数据包时,为源主机发送回复数据包,这个测试命令可以帮助网络管理者测试到达目的主机的网络是否连接.ping无法检查系统端口是否开放.2.telnetTelnet是位于OSI模型的第7层---应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议.这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务