全球主机交流论坛

标题: 求java获取tcp端口连接数的实例或轮子 [打印本页]

作者: 客官不可以    时间: 2022-12-20 13:20
标题: 求java获取tcp端口连接数的实例或轮子
  1.         String cmd = "ping 8.8.8.8"; //运行的命令

  2.         Runtime runtime = Runtime.getRuntime();

  3.         Process p = runtime.exec(cmd);

  4.         InputStream is = p.getInputStream();
  5.         InputStreamReader isr = new InputStreamReader(is, "gbk");
  6.         BufferedReader reader = new BufferedReader(isr);

  7.         for (String line; (line = reader.readLine()) != null;) {
  8.             System.out.println(line);
  9.         }
复制代码



把ping命令 改成
  1. netstat -apn|grep 445|grep 'ESTABLISHED'|wc -l
复制代码

就打印不出来了,有大佬帮看看吗
作者: 静香    时间: 2022-12-20 13:24
可以呀 netstat -apn|grep 80|grep 'ESTABLISHED'|wc -l  你的445端口没开吧


  1. ServerSocket serverSocket = new ServerSocket(port);
  2. int port = serverSocket.getLocalPort();
  3. System.out.println("Local port: " + port);
复制代码

作者: 静香    时间: 2022-12-20 13:29
  1. public class ExecShell {
  2. public static void main(String[] args) {
  3.   String cmd = "ping 1.1.1.1";
  4.   Process process;
  5.   try {
  6.    process = Runtime.getRuntime().exec(cmd);
  7.    process.waitFor();
  8.   } catch (Exception e) {
  9.    e.printStackTrace();
  10.   }
  11. }
  12. }
复制代码


  1. public class ExecShell {
  2. public static void main(String[] args) {
  3.   ProcessBuilder processBuilder = new ProcessBuilder("ping 1.1.1.1");
  4.   try {
  5.    Process process = processBuilder.start();
  6.    process.waitFor();
  7.   } catch (Exception e) {
  8.    e.printStackTrace();
  9.   }
  10. }
  11. }
复制代码

作者: whl32    时间: 2022-12-20 13:39
这种直接问AI来得快,直接给你例子
作者: 客官不可以    时间: 2022-12-20 13:55
静香 发表于 2022-12-20 13:29


不是,你把 String cmd = "ping 1.1.1.1";

换 netstat -apn|grep 80|grep 'ESTABLISHED'|wc -l

我测试用win系统测的 没打印出来
  1. netstat -an -p tcp | find "127.0.0.1" | find /c "80"
复制代码


作者: 客官不可以    时间: 2022-12-20 13:57
whl32 发表于 2022-12-20 13:39
这种直接问AI来得快,直接给你例子

怎么操作 哪里问ai  老哥  指点下
作者: whl32    时间: 2022-12-20 14:12
找楼上的静香,他给你的回复估计就是AI生成的
作者: Unique    时间: 2022-12-20 14:29
客官不可以 发表于 2022-12-20 13:57
怎么操作 哪里问ai  老哥  指点下

chatgpt
作者: 静香    时间: 2022-12-20 17:32
客官不可以 发表于 2022-12-20 13:57
怎么操作 哪里问ai  老哥  指点下

https://chatgpt.sbaliyun.com/
作者: 客官不可以    时间: 2022-12-20 19:28
静香 发表于 2022-12-20 17:32
https://chatgpt.sbaliyun.com/


牛逼啊,真的是ai给我生成了  只要会拼接代码就好了,什么逻辑都给你写好 判断好  好牛逼
作者: DearJohn    时间: 2022-12-21 17:21
我问的ai,它告诉我是 import java.io.BufferedReader;
import java.io.InputStreamReader;

public class PortConnectionCount {
    public static void main(String[] args) throws Exception {
        // 调用系统命令:lsof -i :端口号
        Process p = Runtime.getRuntime().exec("lsof -i :6666");
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        int connectionCount = 0;
        // 遍历命令输出的每一行
        while ((line = br.readLine()) != null) {
            // 统计连接数
            connectionCount++;
        }
        // 输出连接数
        System.out.println("端口6666的TCP连接数: " + connectionCount);
    }
}





欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4