`
cgaolei
  • 浏览: 58199 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

用Java实现Ping的功能

阅读更多

看到几个论坛中一直有人问用Java实现Ping的功能,如果Google一下也可以找到不少答案。有人推荐使用java的Runtime.exec()方法来直接调用系统的Ping命令。也有人完成了纯Java实现Ping的程序,使用的是Java的NIO包(native io, 高效IO包)。

我个人认为,没有必要用Java再重新写一个Ping命令,因为没有多大意义。更多的人是关心用Java实现ping在应用程序中来测试一个远程主机是否可用。其实自从Java 1.5,java.net包中就实现了ICMP ping的功能。以下我来介绍:

自java 1.5以后,java.net.InetAddress中一个方法:

public boolean isReachable(int timeout) throws IOException

 它实现了ICMP ECHO REQUEST。


用法如下:

String host = "192.168.1.181"
int timeOut = 3000; //超时应该在3钞以上
boolean status = InetAddress.getByName(host).isReachable(timeOut);

 当返回值是true时,说明host是可用的,反正则不可。


使用时应注意,如果远程服务器设置了防火墙或相关的配制,可能会影响到结果,也是无法避免的。

另外,由于发送ICMP请求需要程序对系统有一定的权限,当这个权限无法满足时,isReachable方法将试着连接远程主机的TCP端口7(Echo).

分享到:
评论

相关推荐

    Java实现ping功能

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

    用java实现ping功能

    在Java编程中,我们不能直接使用内置的库来实现ping功能,因为Java标准库并不包含这样的功能。但是,我们可以借助第三方库如jpcap(Java Packet Capture)来实现这个功能。 jpcap是一个Java库,它提供了对网络接口...

    java实现的模拟ping功能

    - **`TestPingCmd`类**:这是整个程序的核心类,它包含了一些关键的方法来实现Ping功能。 - `main(String[] args)`方法:程序入口点,用于初始化并启动多线程处理任务。 - `getIpListFromTxt(String filename)`...

    用java实现ping的几种方式

    ### 使用Java实现Ping的多种方法 在日常网络管理和软件开发中,经常需要检查网络连通性。`ping`命令作为一种简单而有效的工具被广泛应用于这一领域。本文将介绍几种使用Java来实现`ping`功能的方法。 #### 方法一...

    java中ping命令ping工具类(循环ping)

    java中ping命令ping工具类(循环ping) java ping ip ping命令 ping工具类 支持linux和windows等所有平台 Ping是Windows下的一个命令 在Unix和Linux下也有这个命令。 ping也属于一个通信协议,是TCP/IP协议的一部分 ...

    java实现ping.pdf

    在描述中,“java实现ping.pdf”重申了文档的主题,强调了该程序的功能:用Java语言编写网络诊断工具。同时,通过提及“技术及资料”,揭示了文档可能包含程序源代码、相关技术细节或使用说明。 根据提供的部分源...

    基于Java实现PING的服务器端和客户端设计.zip

    资源包含:课程报告word+源码 编程实现PING的服务器端和客户端,实现操作系统提供的ping命令的类似功能。详细介绍参考:https://blog.csdn.net/sheziqiong/article/details/127039936

    基于socket实现Ping功能的源代码

    本文将深入探讨基于Socket实现Ping功能的源代码,涉及到的主要知识点包括Socket编程、原始套接字(SOCK_RAW)以及ICMP(Internet Control Message Protocol)协议。 首先,我们需要理解什么是Socket。Socket是操作...

    java语言实现ping函数的功能

    在Java编程语言中,实现ping功能通常涉及到网络通信和套接字编程。ping命令在网络中主要用于检查网络连接的可达性,其工作原理是发送ICMP(Internet Control Message Protocol)回显请求报文到目标主机,然后接收...

    Java简单实现Ping功能.doc

    Java实现ping功能主要是通过调用操作系统命令,也可以使用高级库如Mina进行自定义网络通信。同时,通过线程池可以并发处理多个ping任务,提高效率。告警机制则可以根据实际情况选择合适的方式实现,确保及时响应系统...

    java 实现的 ping程序

    在Java中实现ping功能,我们需要使用Java的Socket编程接口,但由于Java标准库并不直接支持ICMP协议,我们需要使用更低级别的套接字API,如`java.net.Socket`或`java.net.DatagramSocket`。一般情况下,我们会通过...

    JAVA 实现 ping

    一段JAVA代码 实现ping功能 import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import java.nio.channels.SocketChannel;

    Android中实现ping功能的多种方法详解

    Android中实现ping功能的多种方法详解 Android系统中实现ping功能是 Android开发中的一项重要任务,本文将详细介绍 Android中实现ping功能的多种方法。 方法一:使用InetAddresss方式 从Java 1.5开始,java.net...

    实现linux java ping 及traceroute 功能.rar

    对于C#开发者来说,虽然核心讨论的是Java实现,但了解如何在C#中实现类似功能也是有益的。在C#中,虽然没有内置的`ping`和`traceroute`实现,但可以使用P/Invoke技术调用Windows API来完成这些任务。例如,可以调用`...

    计网课设_Java实现简单的PING操作

    在Java中实现PING功能,主要是通过Java的`InetAddress`类来完成的。 【描述】提到,这个课程设计项目旨在让学生理解并实践如何用Java来模拟PING命令的功能。项目分为两个部分:一是针对单个IP地址的PING操作,二是...

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

    通常,PING基于ICMP(Internet Control Message Protocol)协议,但在这个特定的课程设计中,我们将关注如何使用UDP(User Datagram Protocol)来实现类似的机制。下面将详细解释基于UDP的PING实现以及相关的Java...

    java 实现 icmp协议测试

    java 实现 icmp协议测试 需要在java lib目录下添加libjpcap.so文件

Global site tag (gtag.js) - Google Analytics