Есть ли лучший способ сделать пинг ICMP с определенным локальным IP-адресом в Java - PullRequest
1 голос
/ 07 мая 2019

Я бы хотел реализовать программу ping ICMP на Java, для этого есть два способа.

  1. Использование InetAddress:

    InetAddress inet = InetAddress.getByName(args[0]); 
    inet.isReachable(1000);
    
  2. Использование Process + Command:

    Runtime rt = Runtime.getRuntime();
    Process mypro = rt.exec("ping " + args[0]);
    mypro.waitFor();
    

Но все они имеют недостатки:

Первый путь:

  • Я не могу указать локальный IP и указать TOS, такие как: ping -I localip DestIP -Q 120

Второй способ:

  • Он может выполнить все требования, но я беспокоюсь о производительности, потому что каждый пинг создает отдельный процесс, если бы у меня были миллионы пингов, это было бы ужасно.
...