!include #1005410 // Awareness Include sbool validPeer(MachineInfo info) { if (!info.aware || info.computerID == null) false; if (info.lastChecked < now()-l(pinging)*pingLoopInterval*2*1000) false; true; } sS osName(MachineInfo info) { ret contains(info.bots, "Dex Bot.") ? "Android" : info.os; } svoid scanSubnet { pcall { S ip = getMyIP(); int i = ip.lastIndexOf('.'); if (i < 0) ret; print("Scanning my subnet..."); for (int n = 1; n <= 255; n++) { S peer = substring(ip, 0, i+1) + n; scanPeer(peer); } print("Subnet scanned."); } } // 255 threads :) svoid scanSubnet_parallel { pcall { S ip = getMyIP(); int i = ip.lastIndexOf('.'); if (i < 0) ret; print("Scanning my subnet really quickly..."); for (int n = 1; n <= 255; n++) { fS peer = substring(ip, 0, i+1) + n; S msg = "Peer Scan " + peer; thread msg { scanPeer(peer); } } } } svoid scanPeer(S peer) { pcall { if (!pinging.contains(peer)) { print("Trying " + peer); if (isAware(peer)) addPeers(ll(peer)); } } } static L otherPCs() { new L ips; for (final MachineInfo info : findConcepts(MachineInfo, "me", false)) if (validPeer(info) && neq(osName(info), "Android")) ips.add(info.ip); ret ips; }