gpt4 book ai didi

java - 如何发现监听端口 x 的 IP 地址

转载 作者:行者123 更新时间:2023-12-01 15:07:52 25 4
gpt4 key购买 nike

我想扫描我的子网中的 IP 范围。我想保存 IP 地址,这些地址将在特定端口上听到。我使用这段代码:

        for (int host = 1; host < 255; host++) {
String ip = networkAddress + host;

Socket socket;
try {
socket = new Socket(ip, port);
System.out.println(ip + " +");
serverList.add(ip);
socket.close();
}
catch (Exception e) {
System.out.println(ip + " -");
}
}

但我的问题是这需要太多时间......有没有更快的方法?

最佳答案

使用多线程。由于大部分时间实际上都花在等待响应上,因此您可以安全地创建 100 个(甚至 200 个)线程,将总时间减少两个数量级。使用Executors类来创建线程池并为每个主机提交一个任务。

请记住,serverList 集合必须是线程安全的。使用 shutdown()awaitTermination() 对等待结果。或者使用CompletionService在结果到达时收集结果。

关于java - 如何发现监听端口 x 的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com