import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
public class PingTest {
public static void main(String[] args) {
PingTest.cmd("www.baidu.com",8080,5000);
}
/**
* 1.模拟TELNET
* 利用Socket的connect(SocketAddress endpoint, inttimeout)方法可以实现telnet的功能,如果catch到异常说明telnet失败
* @param ip 地址
* @param port 端口
* @param timeOut 超时时间
*/
static void socketTest(String ip,int port,int timeOut){
try {
Socket server = new Socket();
InetSocketAddress address = new InetSocketAddress(ip,port);
server.connect(address, timeOut);
System.out.println(server.isConnected());
server.close();
} catch (UnknownHostException e){
System.out.println("telnet失败");
} catch (IOException e){
System.out.println("telnet失败");
}
}
/**
* 2.模拟PING
* 利用InetAddress的isReachable方法可以实现ping的功能,里面参数设定超时时间,返回结果表示是否连上
* @param ip 地址
* @param port 端口
* @param timeOut 超时时间
*/
static void isReachableTest(String ip,int port,int timeOut){
try {
InetAddress address = InetAddress.getByName(ip);
System.out.println(address.isReachable(timeOut));//true:连接成功,false:连接失败
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 3.JAVA调用外部EXE实现PING功能
* ping的过程可以显示在本地
* @param ip 地址
* @param port 端口
* @param timeOut 超时时间
*/
static void execCmd(String ip,int port,int timeOut) {
try {
String adress = "ping " + ip;
Process p = Runtime.getRuntime().exec("cmd /c " + adress);
InputStreamReader inputStreamReader = new InputStreamReader(p.getInputStream(), Charset.forName("GBK"));
BufferedReader br = new BufferedReader(inputStreamReader);
String line=null;
while((line = br.readLine()) != null){
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("执行失败!");
}
}
/**
* 4.JAVA调用外部EXE实现PING功能
* ping的过程可以显示在本地
* @param ip 地址
* @param port 端口
* @param timeOut 超时时间
*/
static void cmd(String ip,int port,int timeOut) {
try{
Runtime.getRuntime().exec("cmd /c start ping "+ip);
}catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
参考地址:http://blog.csdn.net/qq_29663071/article/details/50563275
java实现ping功能的几种方法
最新推荐文章于 2021-04-08 16:25:41 发布