`
消失-IT超市
  • 浏览: 6371 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java Ping操作(测试网络)

阅读更多
说明:
Ping命令是个危险的命令,用它可以知道你的操作系统,IP等,为了安全禁Ping是个很好的方法,也是防DDOS攻击的。应该是有外部网络试图连接你的UDP的1434端口,不知道你打了补丁没有。
黑客入侵时,大多使用Ping命令来检测主机,如果Ping不通,水平差的“黑客”大多就会知难而退。事实上,完全可以造成一种假相,即使我们在线,但对方Ping时也不能相通,这样就能躲避很多攻击。
所以测试时,应确定以下两个方面:
1.确保Ping命令可用。
2.确认操作系统,不同系统,Ping命令的参数不一样。

未例代码如下:
/**
	 * 测试设备网络状态
	 * 
	 * @return boolean
	 * @throws Exception 
	 */
	private static boolean connectTest() throws Exception {
		
		String OS = System.getProperty("os.name").toLowerCase();
		int pingTimes = 4;
		String pingCommand = "";
		if (OS.indexOf("windows")>=0) {
			pingCommand = "ping " + ip + " -n " + pingTimes;
		} else {
			pingCommand = "ping " + "-c " + pingTimes + " " + ip;
		}
		boolean status = isReachable(pingCommand, pingTimes);
		
		if (!status) {
			throw new Exception("设备不能连接(ping 不通!!!)");
		}
		
		return status;
	}

/**  * 测试是否能ping通  
	 * * @param server  
	 * * @param timeout  
	 * * @return  */ 
	private static boolean isReachable(String pingCommand, int pingTimes) {
		BufferedReader in = null;
		Runtime r = Runtime.getRuntime();
		try {
			// 执行命令并获取输出
			System.out.println(pingCommand);
			Process p = r.exec(pingCommand);
			if (p == null) {    
				return false;   
			}
			in = new BufferedReader(new InputStreamReader(p.getInputStream()));
			// 逐行检查输出,计算类似出现=23ms TTL=62字样的次数
			int connectedCount = 0;
			String line = null;  
			while ((line = in.readLine()) != null) {
				connectedCount += getCheckResult(line);
			}   
			// 如果出现类似=23ms TTL=62这样的字样,出现的次数=测试次数则返回真
			return connectedCount == pingTimes;
		} catch (Exception ex) {   
			ex.printStackTrace();
			// 出现异常则返回假
			return false;}
		finally {  
			try {
				in.close();
			} catch (IOException e) { 
				e.printStackTrace();
			} 
		}
	} 
分享到:
评论

相关推荐

    Java实现ping功能

    在"Java实现ping功能"中,我们可能使用了`Socket`类来模拟TCP的ping操作,通过尝试建立连接来检测目标主机的可达性。此外,由于TCP和ping命令(基于ICMP协议)的机制不同,可能还需要使用`MulticastSocket`或自定义 ...

    udp_Ping_JAVAping_javaudpping_java_基于UDP的PING_udp_Ping_

    UDP(User Datagram Protocol)是一种无...在给定的项目“udp_Ping_JAVAping_javaudpping_java_基于UDP的PING_udp_Ping”中,你可以找到实现这些功能的具体代码,进一步学习和理解Java如何操作UDP套接字进行数据通信。

    javaping.rar_JAVA ping_ping_ping(java)

    在IT行业中,网络通信是至关重要的,而"ping"命令是一种简单却强大的工具,用于测试网络连接的连通性。这个"javaping.rar"压缩包包含了一个Java实现的ping功能,使得开发者能够在Java应用程序中集成网络检测的能力。...

    java PING的综合测试

    综上所述,`Java`中的`PING`综合测试是一个涉及网络通信基础、异常处理、并发编程以及数据解析等多个IT知识点的实践项目。通过这样的测试,我们可以深入了解网络性能,为优化网络连接提供依据。

    java实现的模拟ping功能

    - **执行Ping操作**:`doPingCmd`方法实现了核心的Ping功能,它使用操作系统自带的Ping命令并通过Java进程控制API来捕获命令的输出结果。 ```java public Integer doPingCmd(String destIp, int maxCount) { ...

    java实现ping.pdf

    3. ICMP协议:ping程序通常使用ICMP(Internet Control Message Protocol)协议来测试网络连接。虽然源代码片段中没有直接提及ICMP,但实现ping功能通常意味着需要通过ICMP协议发送和接收回显请求和回显应答消息。 ...

    java工程 实现调用系统命令ping

    首先,我们需要理解“ping”命令的基本原理:它通过发送ICMP(Internet Control Message Protocol)回显请求数据包到目标主机,然后接收相应的回显应答来测试网络连通性。 在Java中,我们可以使用`Runtime....

    手机端实现Ping测试功能

    为了提供更好的用户体验,可以考虑将ping操作封装到异步任务(AsyncTask)中,避免阻塞UI线程。同时,根据用户输入的主机名或IP地址动态执行ping测试,并展示实时的响应时间和成功率。 在实际应用中,可能还需要...

    java模拟ping程序(内含java文件,报告任务书)

    Java模拟ping程序是一种在计算机网络领域常见的应用,它利用了ICMP(Internet Control Message Protocol)协议,用于测试网络连接的可达性和响应时间。这个程序在Java中实现,可以帮助学习者理解网络编程的基本原理,...

    实现linux java ping 及traceroute 功能.rar

    首先,`ping`是一个简单但实用的网络工具,用于测试主机之间是否可达以及网络的延迟时间。在Linux中,`ping`通过发送ICMP(Internet Control Message Protocol)回显请求报文到目标主机并等待回应来完成这一任务。在...

    Ping_Java.rar_it_ping

    在Java中,虽然没有内置的系统函数直接支持ping操作,但我们可以利用Java的Socket或者 ICMP(Internet Control Message Protocol)库来模拟这一过程。以下是对这个主题的详细解释: 1. **网络基础**: - **IP地址*...

    计算机网络实验ping

    计算机网络实验ping是基于ICMP协议原理的ping命令实现,用于测试目标主机是否可到达。下面是该实验的详细知识点: 1. ICMP协议原理:ICMP(Internet Control Message Protocol)是因特网的操作被路由器严密监视,当...

    实现linux java ping 及traceroute 功能.zip

    `ping`用于测试网络连接,通过发送ICMP回显请求报文来检查与远程主机的连通性;而`traceroute`则用于跟踪数据包在网络中的路由路径,帮助我们了解数据包从源到目的地经过的各个节点。在Java中实现这些功能,可以让...

    编程实现基于UDP的PING(Java).docx

    在计算机网络中,PING是一个用于测试网络连接性和测量网络延迟的工具。 描述中提到的“实现基于 UDP 的 PING”意味着我们需要构建两个部分:服务器端(PingServer)和客户端(PingClient)。服务器端需要具备并发服务多...

    PINGtest_ping_

    标题"PINGtest_ping_"指的是一个用于测试网络连通性的工具,特别关注于使用"ping"命令来检查IP地址的可达性。"ping"是互联网控制报文协议(ICMP)的一部分,它允许网络设备发送“回显请求”到目标IP地址,然后接收...

Global site tag (gtag.js) - Google Analytics