2016-01-28 621 views
-1

有人可以幫我寫一個bash腳本,從如下因素格式更改IP地址格式

192.168.1.0/27 

更改IP地址,以這種格式,即寫IP

192.168.1.0 255.255.255.224 

我需要身邊面具那它腳本並計算它,改變27至224,如果斜槓是24將寫入255.255.255.0等...

+0

'echo「192.168.1.0 255.255.255.224」'Job Done。什麼?不是你想要的?也許你應該提出一個更清晰的問題。 – John3136

+0

我更新了我的問題 – Miron

回答

0

如果你有python 3.X(3.4在我的情況):

python3.4 -c "import ipaddress; print(ipaddress.ip_network('192.168.1.0/27').with_netmask)" 

輸出:

192.168.1.0/255.255.255.224

+0

thansk for ur anser,但我需要bash腳本 – Miron

+0

Bash通常是其他可執行文件的「膠水」。你沒有python嗎? –

+0

不,我沒有學習Python,我的任務是在bash上完成它 – Miron

0

也許這個回答這個問題:

IP="127.0.0.1/27" 
REM=`echo "$IP" | sed 's/^.*\/\([0-9][0-9]\)/\1/'` 
IP=`echo "$IP" | sed 's/\(^.*\)\/[0-9][0-9]/\1/'` 

REM=`echo "$REM - 24" | bc` 

MASKTAIL=0 

while [[ "$REM" > 0 ]] 
do 
    MASKTAIL=`echo "$MASKTAIL + 2^(8-$REM)" | bc` 
    REM=`echo "$REM - 1" | bc` 
done 

echo "$IP 255.255.255.$MASKTAIL" 

https://en.wikipedia.org/wiki/Subnetwork#Subnet_and_host_counts爲前綴面膜描述

Pd 。:不適用於值< 24或> 31