import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List;
import java.util.ArrayList;
public class TestSocket {
public static void main(String[] args) throws IOException{
InetAddress host = InetAddress.getLocalHost();
String ip = host.getHostAddress();
System.out.println(ip);
// 获取ip前三段
String tIp = ip.substring(0,ip.lastIndexOf(".")+1);
System.out.println(tIp);
List<String> ips = new ArrayList<>();
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(10,15,60,TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>());
threadPool.execute(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=1;i<256;i++){
String testIp = String.format("%s%d",tIp,i);
long start = System.currentTimeMillis();
Process p = null;
try{
p = Runtime.getRuntime().exec(" ping "+"testIp");
}catch(IOException e){
e.printStackTrace();
}
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while((line=br.readLine())!=null){
if(line.length()!=0)
sb.append(line+"\r\n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long end = System.currentTimeMillis();
synchronized(ips){
if(end-start<10000)
ips.add(testIp);
}
System.out.println("已经完成:"+i+"个ip测试");
}
}
});
System.out.println("如下ip地址可以连接:");
for(int i=0;i<ips.size();i++){
System.out.println(ips.get(i));
}
System.out.println("可用ip地址共有"+ips.size()+"个");
}
}
Java 查询本主机IP所在网段有多少可用IP(*)
最新推荐文章于 2024-04-30 21:20:10 发布