1つのipは1回のプログラムを実行します
もしあなたが使うことができるip(対外ip)がたくさんあるとしたら、本機ipを変えてネットワーク接続を行ってプログラムを実行することができます.
幸いなことに、私はローカルエリアネットワーク内にいますが、ローカルエリアネットワークの各ipは独立したipであり、ローカルエリアネットワークがipでプログラムを実行できることを検出することができます.
他のホストがpingをマスクする可能性があるため、arpを使用してipが他のホストに使用されていないかどうかを検出します.
次にbashスクリプトを示します
幸いなことに、私はローカルエリアネットワーク内にいますが、ローカルエリアネットワークの各ipは独立したipであり、ローカルエリアネットワークがipでプログラムを実行できることを検出することができます.
他のホストがpingをマスクする可能性があるため、arpを使用してipが他のホストに使用されていないかどうかを検出します.
次にbashスクリプトを示します
#!/bin/bash
keys="keywords.txt"
jar="google.jar" # java
net_pfx="xx.xx.xx" # ip
network=1
subip=1
if [ ! -f $key ]; then
echo "$keys not exsist"
exit 1
fi
if [ ! -f $jar ]; then
echo "$jar not exsist"
exit 1
fi
if [ `id -u` -ne 0 ]; then
echo "must run by root"
exit 2
fi
while read key
do
while arping -c1 -w2 -Ieth1 "$net_pfx$network.$subip"
|| grep "address $net_pfx$network.$subip" /etc/network/interfaces
do
let subip++
if [ $subip -ge 254 ] ; then
if [ $ network -gt 3 ]; then
echo "all ips traversed"
return 0
fi
subip=1
let network++
fi
done
sed -i s/address.*/"address $net_pfx$network.$subip"/ /etc/network/interfaces
sed -i s/gateway.*/"gateway $net_pfx$network.254"/ /etc/network/interfaces
/etc/init.d/networking restart
java -jar $jar "$key"
done < $keys