用shell指令碼批量連續更改FreeBSD主機ip

來源:互聯網
上載者:User

年前寫過一個自動投票的小程式,因為對方的網站限制為一個ip地址一天只能投10票,所以這個自動投票的程式在設計初期主要是通過Proxy 伺服器投票,後來同事提供了區域網路內的30個ip地址,雖然自動投票的代碼已經完成了,但是在windows下手動更改ip,真的很累人,而windows的WMI編程又不會,最後找到一台不用的FreeBSD機器,寫了個指令碼,並配置為每天淩晨12點後運行,效果很好。

更改ip地址的指令碼名為cip_vote,可以這樣調用:
./cipvote fxp0 iptable.txt

其中fxp0是網卡的名稱,iptable.txt是可以更改的ip地址清單,其格式為:

210.77.79.201        255.255.255.128        210.77.79.255
210.77.79.202        255.255.255.128        210.77.79.255
...

第一列為需要更改的IP地址,第二列為子網路遮罩,第三列為廣播(broadcast)地址。

具體的更改ip的命令,可以參考ifconfig的線上手冊,這裡就不贅述了,下面是原始碼:

#! /usr/local/bin/bash<br />#首先擷取當前的ip設定,在執行完ip的操作後會恢複為當前設定<br />inet_ip=`ifconfig $1 | awk '$0 ~ / *inet */ {print $2}'`<br />inet_netmask=`ifconfig $1 | awk '$0 ~ / *inet */ {print $4}'`<br />inet_broadcast=`ifconfig $1 | awk '$0 ~ / *inet */ {print $6}'`<br />#讀取檔案的內容並將ip,netmask,broadcast的地址讀入相關數組中儲存<br />temp=`wc -l $2`<br />declare -i i=0;<br />declare -i LineNumber=`echo $temp | awk '{print $1}'`<br />declare -i n;<br />while [ "$i" != "$LineNumber" ]<br />do<br /> n=$i+1<br /> ip_array[n]=`head -n $n $2 | tail -n 1 | awk '{print $1}'`<br /> netmask_array[n]=`head -n $n $2 | tail -n 1 | awk '{print $2}'`<br /> broadcast_array[n]=`head -n $n $2 | tail -n 1 | awk '{print $3}'`<br /> i=$i+1<br />done<br />#用ifconfig命令更改ip地址,然後進行投票工作,最後恢複主機從前的ip設定<br />i=0;<br />while [ "$i" != "$LineNumber" ]<br />do<br /> n=$i+1<br /> echo "ifconfig $1 inet ${ip_array[`echo $n`]} netmask ${netmask_array[`echo $n`]} broadcast ${broadcast_array[`echo $n`]}"<br /> ifconfig $1 inet ${ip_array[`echo $n`]} netmask ${netmask_array[`echo $n`]} broadcast ${broadcast_array[`echo $n`]}<br /> route add default 210.77.79.254</p><p>#在這裡添加要執行操作的代碼<br /> i=$i+1<br />done<br />#最後恢複為原來的設定<br />ifconfig $1 inet $inet_ip netmask $inet_netmask broadcast $inet_broadcast<br />route add default 210.77.68.25

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.