static TimedCache> detectGateways_cache = new TimedCache(5); static synchronized L detectGateways() ctex { if (detectGateways_cache.has()) ret detectGateways_cache.getNoClean(); boolean win = isWindows(); String s = backtick(win ? "ipconfig" : "ip route show"); new TreeSet ips; for (String line : toLines(s)) if (indexOfIgnoreCase(line, win ? "Gateway" : "via") >= 0) ips.addAll(regexpAll("\\d+\\.\\d+\\.\\d+\\.\\d+", line)); return detectGateways_cache.set(new ArrayList(ips)); }