ในเครื่องจิ๋วๆ อาจจะไม่มี Tool อะไร มาก ใช้ shell
#!/bin/sh
echo "Scanning network 192.168.1.1/24"
for i in $(seq 1 254); do
host="192.168.1.$i"
ping -c 1 -t 100 $host > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$host is up"
fi
done
echo "Scan complete"
ที่จะลงได้ ใช้ python อาจจะง่ายสุด
from multiprocessing.dummy import Pool
import subprocess
def ping(host):
command = ['ping', '-c', '1', '-t', '100', host] # 100 ms timeout
if subprocess.call(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0:
print(host, 'is up')
def scan_host(i):
host = '192.168.1.' + str(i)
ping(host)
def scan_network(network):
print('Scanning network', network)
pool = Pool(50) # 50 concurrent threads
pool.map(scan_host, range(1, 255))
pool.close()
pool.join()
scan_network('192.168.1.1/24')