根据IP地址换算出广播地址的一个shell脚本,对于研究网络地址转换与shell脚本
脚本内容如下:
复制代码代码示例:
#!/bin/bash
# 將參數值裡的非數字全部換成空白鑑 all=(${@//[!0-9]/ })
# 要是處理過的參數量不是 8 個的話... 送出錯誤信息,告知命令可接受的參數格式。並退出。
# 定義一個 get_add 的 function
# 要是讀進的第一個 function 參數為 -b ,則設定 op, op1, 與 arg 的變量,以供後面的 $(( $1 $op ($5 $op1 $arg) )) 計算用。
# 若沒有 -b 參數,則只定義 op 變量。然則,$(( $1 $op ($5 $op1 $arg) )) 的實際算式就變成 $(( $1 & $5)),這會逐個算出 network address 。
# 取消變量 address ,以免影嚮其後於 while loop 的運算。
# 假如能讀到第 5 個參數,才進入 while loop,否則離開。
# 跟據前面的 -b 參數,來決定要算出 broadcast 還是 network 。因為前 4 個參數是 ip 後 4 個是 mask ,因此第一個參數跟第五個參數來算就能得出第一組 ip/mask 的計算結果。
# 跑 function 來計算 network address :
# 跑 function 來計算 broadcast address :
# 將參數值裡的非數字全部換成空白鑑
# 要是處理過的參數量不是 8 個的話... 送出錯誤信息,告知命令可接受的參數格式。並退出。
# 定義一個 get_add 的 function
# 要是讀進的第一個 function 參數為 -b ,則設定 op, op1, 與 arg 的變量,以供後面的 $(( $1 $op ($5 $op1 $arg) )) 計算用。
# 若沒有 -b 參數,則只定義 op 變量。然則,$(( $1 $op ($5 $op1 $arg) )) 的實際算式就變成 $(( $1 & $5)),這會逐個算出 network address 。
# 取消變量 address ,以免影嚮其後於 while loop 的運算。
# 假如能讀到第 5 個參數,才進入 while loop,否則離開。
# 跟據前面的 -b 參數,來決定要算出 broadcast 還是 network 。因為前 4 個參數是 ip 後 4 個是 mask ,因此第一個參數跟第五個參數來算就能得出第一組 ip/mask 的計算結果。
# 跑 function 來計算 network address :
# 跑 function 來計算 broadcast address :
调用示例:
复制代码代码示例:
sh to_broadcst.sh ip.ip.ip.ip/mast.mast.mast.mast
ip:即ip地址 |