javaping,java平台缺少DST證書

本文目錄一覽:

如何用Java實現Ping

你應該看看api process 返回的是流,按照輸出流的方法操作即可.公司上不去外網,有代理才行,所以沒有ping 百度,ping的本機.

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class CallCmd {

public static void main(String[] args) {

BufferedReader br = null;

try {

Process p = Runtime.getRuntime().exec(“ping 127.0.0.1”);

br = new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = null;

StringBuilder sb=new StringBuilder();

while ((line = br.readLine()) != null) {

sb.append(line+”\n”);

}

System.out.println(sb.toString());

} catch (Exception e) {

e.printStackTrace();

} finally {

if (br != null) {

try {

br.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

Java實現IP是否能Ping通功能

1.Jdk1.5的InetAddresss方式

自從Java 1.5,java.net包中就實現了ICMP ping的功能。

見:Ping類的ping(String)函數,String為ip不加埠號。

使用時應注意,如果遠程伺服器設置了防火牆或相關的配製,可能會影響到結果。另外,由於發送ICMP請求需要程序對系統有一定的許可權,當這個許可權無法滿足時, isReachable方法將試著連接遠程主機的TCP埠 7(Echo)。

2.最簡單的辦法,直接調用CMD

見Ping類的ping02(String)函數。

3.Java調用控制台執行ping命令

具體的思路是這樣的:

通過程序調用類似「ping 127.0.0.1 -n 10 -w 4」的命令,這命令會執行ping十次,如果通順則會輸出類似「來自127.0.0.1的回復: 位元組=32 時間1ms TTL=64」的文本(具體數字根據實際情況會有變化),其中中文是根據環境本地化的,有些機器上的中文部分是英文,但不論是中英文環境, 後面的「1ms TTL=62」字樣總是固定的,它表明一次ping的結果是能通的。如果這個字樣出現的次數等於10次即測試的次數,則說明127.0.0.1是百分之百能連通的。

技術上:具體調用dos命令用Runtime.getRuntime().exec實現,查看字元串是否符合格式用正則表達式實現。

見Ping類的ping(String,int,int)函數。

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Ping {

public static boolean ping(String ipAddress) throws Exception {

int timeOut = 3000 ; //超時應該在3鈔以上

boolean status = InetAddress.getByName(ipAddress).isReachable(timeOut); // 當返回值是true時,說明host是可用的,false則不可。

return status;

}

public static void ping02(String ipAddress) throws Exception {

String line = null;

try {

Process pro = Runtime.getRuntime().exec(“ping ” + ipAddress);

BufferedReader buf = new BufferedReader(new InputStreamReader(

pro.getInputStream()));

while ((line = buf.readLine()) != null)

System.out.println(line);

} catch (Exception ex) {

System.out.println(ex.getMessage());

}

}

public static boolean ping(String ipAddress, int pingTimes, int timeOut) {

BufferedReader in = null;

Runtime r = Runtime.getRuntime(); // 將要執行的ping命令,此命令是windows格式的命令

String pingCommand = “ping ” + ipAddress + ” -n ” + pingTimes + ” -w ” + timeOut;

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();

}

}

}

//若line含有=18ms TTL=16字樣,說明已經ping通,返回1,否則返回0.

private static int getCheckResult(String line) { // System.out.println(“控制台輸出的結果為:”+line);

Pattern pattern = Pattern.compile(“(\\d+ms)(\\s+)(TTL=\\d+)”, Pattern.CASE_INSENSITIVE);

Matcher matcher = pattern.matcher(line);

while (matcher.find()) {

return 1;

}

return 0;

}

public static void main(String[] args) throws Exception {

String ipAddress = “127.0.0.1”;

System.out.println(ping(ipAddress));

ping02(ipAddress);

System.out.println(ping(ipAddress, 5, 5000));

}

}

如何在JAVA語言中調用PING命令

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

/**

*

* @author tommy

*/

public class Ping

{

public Ping()

{

for(int i =0;i 255;i++)

result[i] = 0;

}

public void scan()

{

for(int i=70;i 85;i++)

{

String tmp = exec + i;

try

{

Process pr = Runtime.getRuntime().exec(tmp);

BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));

while (true)

{

String s = br.readLine();

if(s==null)

break;

if (s.contains( “TTL “))

result[i] = 1;

System.out.println(s);

}

br.close();

}

catch (IOException ex)

{

ex.printStackTrace();

}

}

}

public static void main(String args[])

{

Ping a = new Ping();

a.scan();

for(int i =0;i 255;i++)

System.out.println( “result[ “+i+ “] = “+a.result[i]);

}

private static String exec = new String( “cmd /c ping 127.0.0.1 “);

public int[] result = new int[255];

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/279047.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:02
下一篇 2024-12-20 15:02

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python能否跨平台

    Python作為一門高級編程語言,是一種跨平台的編程語言。下面從多個方面探討Python能否跨平台。 一、Python的跨平台性 Python可以在Windows、Linux、Ma…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論