package li.net; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.StringWriter; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Ping { static ExecutorService executorService = Executors.newFixedThreadPool(25); public static void main(String[] args) throws Exception { for (int a = 0; a < 256; a++) { for (int b = 0; b < 256; b++) { final String ip = "192.168." + a + "." + b; executorService.submit(new Runnable() { public void run() { if (check(ip)) { System.out.println(ip); } } }); } } } public static Boolean check(String ip) { String result = ping(ip); return result.contains("的回复"); } public static String ping(String ip) { try { String cmd = "ping " + ip; Process process = Runtime.getRuntime().exec(cmd); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK")); StringWriter stringWriter = new StringWriter(); String buf; while ((buf = bufferedReader.readLine()) != null) { stringWriter.write(buf + "\n"); } return stringWriter.toString(); } catch (Exception e) { throw new RuntimeException(e); } } }