2015-06-07 115 views
-1

我創建一個* .deb文件包,將您的無線網卡成熱點。 我被困在配置: 我必須寫在我問到用戶什麼IP地址,他喜歡他的熱點,然後用它來生成距離&爲ISC-DHCP-子網地址的文件的postinst服務器。如何總結IP地址

類似的東西:

10.10.0.01 + 0.0.0.9 = 10.10.0.10

我知道如何串和編號分配給變量,以及如何讓用戶自己choosen IP,但如何修改一個變量並將結果賦給另一個? expr認爲這是一個浮動數字,並且不起作用。

希望一切很不夠清晰, 等待幫助,

預先感謝您

+0

嘗試分成4個四個部分,添加它們,然後再加入他們 –

回答

0

避免前導零。

IFS="." read -a a <<< 10.10.0.1 
IFS="." read -a b <<< 0.0.0.9 
s="$[a[0]+b[0]].$[a[1]+b[1]].$[a[2]+b[2]].$[a[3]+b[3]]" 
echo $s 

輸出:

 
10.10.0.10 
+0

這是如何處理的字節的單個字節溢出?如果你想總結ip地址,你需要先將它們從ascii表示轉換爲數字,然後將它們彙總並轉換回ascii。此外,您需要確保結果是可以分配給主機的有效IP地址。 [Here](http://stackoverflow.com/a/3222521/171318)你可以在bash中找到'INET_ATON'和'INET_NTOA'的實現,但我認爲OP不想總結它們([ XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)) – hek2mgl

+0

好的,對不起,我正在寫我自己的,並沒有看到你的答案。它比我的好得多。謝謝!! – tarzanello666

+0

我的簡單例子是缺少hek2mgl提到的功能。 – Cyrus

0

好吧,我發現了一個變通辦法:

當我問到用戶的choosen IP我使用這些:

IFS="." read -r a b c d 
choosenip="$a.$b.$c.$d" 
subnetip="$a.$b.$c.0" 
rangeipmin="$a.$b.$c.20" 
rangeipmax="$a.$b.$c.30" 

IFS變化默認的「空格」或「標籤」可以任意設定。

所以,當我必須把這些在dhcpd.conf中與「回聲」,我只需要調用的變量。

如果你有更優雅的方式來做到這一點,歡迎您。

謝謝