2009-11-15 49 views

回答

3

相同的方式,任何其他語言做

set n 24 
set mask [expr {~ 0 << (32 - $n)}] 
format "%d.%d.%d.%d" [expr {$mask >> 24 & 255}] [expr {$mask >> 16 & 255}] [expr {$mask >> 8 & 255}] [expr {$mask & 255}] 
+0

謝謝。設置掩碼行實際上做了什麼? – user211491 2009-11-15 16:46:17

+0

它創建了一個「位」的掩碼,可以將其轉移,真正將數據用作位掩碼。 – 2009-11-15 16:57:56

+0

與此問題相關,如何將1添加到IP地址(例如:192.168.1.0)。我有一個IP地址和一個子網掩碼,我正在嘗試獲取範圍中的第一個有效IP地址。如果我在IP和子網之間進行邏輯與,則得到子網號。我需要將1添加到子網號以獲取第一個IP。 – user211491 2009-11-15 17:09:32

1

當然很容易在普通的Tcl做,但你可以考慮使用ip包從Tcllib對IP地址的轉換,因爲它提供了衆多便利的功能,使它幾乎可以輕鬆處理IPv4和IPv6地址需要做的任何事情。