Java 实现 telnet命令 验证主机端口的连通性
1、Telnet 命令
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
我们经常使用 telnet命令 测试主机端口的连通性(比如: 验证 www.baidu.com 80端口的连通性,如下状态说明80端口是通的)。
2、Java 实现 telnet 主机端口
1)代码实现如下:
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
/**
* @author Miracle Luna
* @version 1.0
* @date 2019/12/16 16:11
*/
public class TelnetUtil {
/**
* 测试telnet 机器端口的连通性
* @param hostname
* @param port
* @param timeout
* @return
*/
public static boolean telnet(String hostname, int port, int timeout){
Socket socket = new Socket();
boolean isConnected = false;
try {
socket.connect(new InetSocketAddress(hostname, port), timeout); // 建立连接
isConnected = socket.isConnected(); // 通过现有方法查看连通状态
// System.out.println(isConnected); // true为连通
} catch (IOException e) {
System.out.println("false"); // 当连不通时,直接抛异常,异常捕获即可
}finally{
try {
socket.close(); // 关闭连接
} catch (IOException e) {
System.out.println("false");
}
}
return isConnected;
}
public static void main(String[] args) {
// String hostname = "14.215.178.37";
String hostname = "www.baidu.com"; // hostname 可以是主机的 IP 或者 域名
int port = 80;
int timeout = 200;
boolean isConnected = telnet(hostname, port, timeout);
System.out.println("telnet "+ hostname + " " + port + "\n==>isConnected: " + isConnected);
}
}
2)运行结果如下:
telnet www.baidu.com 80
==>isConnected: true