java测试(ping)ip和端口,带超时时间!!!

带超时时间,到了时间,没通就返回false.

/**
     * Purpose:ping ip
     * @author Hermanwang
     * @param ipAddress:ip
     * @throws Exception
     * @return boolean
     */
    public static boolean pingIp(String ipAddress) throws Exception {
        //此处 3是超时时间,单位是秒
        return 0==Runtime.getRuntime().exec("ping -w 3 "+ipAddress).waitFor();
    }

/**
     * Purpose:ping host或者 port
     * @author Hermanwang
     * @param ipAddress:ip
     * @param port:port/host
     * @throws Exception
     * @return boolean
     */
    public static boolean pingHost(String ipAddress,int port) throws Exception {
        boolean isReachable = false;
        Socket connect = new Socket();
        try {
            InetSocketAddress endpointSocketAddr = new InetSocketAddress(ipAddress, port);
            //此处3000是超时时间,单位 毫秒
            connect.connect(endpointSocketAddr,3000);
            isReachable = connect.isConnected();
        } catch (Exception e) {
            System.out.println(e.getMessage() + ", ip = " + ipAddress + ", port = " +port);
        } finally {
            if (connect != null) {
                try {
                    connect.close();
                } catch (IOException e) {
                    System.out.println(e.getMessage() + ", ip = " + ipAddress + ", port = " +port);
                }
            }
        }
        return isReachable;
    }

 

亲测有效!!!

要在Java中实现ping功能,可以使用Java的Socket类来实现。通过创建一个Socket对象,可以向目标主机发送ICMP Echo请求,并等待接收响应。以下是一个简单的示例代码: ```java import java.io.IOException; import java.net.InetAddress; import java.net.Socket; public class PingExample { public static void main(String[] args) { String host = "目标主机IP地址"; int timeout = 3000; // 设置超时时间,单位为毫秒 try { InetAddress address = InetAddress.getByName(host); boolean reachable = address.isReachable(timeout); if (reachable) { System.out.println("Ping成功"); } else { System.out.println("Ping失败"); } } catch (IOException e) { System.out.println("Ping失败"); } } } ``` 在上述代码中,我们使用`InetAddress.getByName()`方法获取目标主机的InetAddress对象,然后使用`isReachable()`方法进行ping操作。如果返回值为true,表示ping成功;如果返回值为false,表示ping失败。我们可以根据这个结果输出相应的提示信息。注意,这里需要注意设置超时时间,以免长时间等待。 参考资料: 此项目是spring boot thymeleaf maven的Java实现ping命令的功能以及端口检测是否开放的功能。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [java实现ping功能的几种方法](https://blog.csdn.net/qq_29663071/article/details/50563275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Java实现ping功能](https://download.csdn.net/download/malimingwq/10529547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值