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; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验