一个ip执行一次程序

假设你有一堆可以是用的ip(对外ip),可改变本机ip进行网络连接执行一次程序。

比较幸运的是,我位于一个局域网内,而局域网的每个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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值