在ip地址中添加一个号码

时间:2016-07-07 08:39:41

标签: list tcl

我想写一个tcl程序来为一个ip地址添加一个数字,如192.168.255.254 +2给出192.169.0.0

#!/bin/tclsh
puts "Please enter a ip address"
gets stdin ip
puts "You have Entered Ip Address: $ip"
set Ip [split $ip .]
puts $Ip

现在我在遍历列表时遇到问题。如果我可以以相反的顺序遍历他的列表,那么我可以添加该号码并将进位转发到左侧,然后用'。'打印新的IP地址。

我有兴趣以相反的顺序遍历列表。

1 个答案:

答案 0 :(得分:3)

您就是这样做的:

package require ip
set ip [ip::toInteger 192.168.255.254]
# => 3232301054
ip::intToString [incr ip 2]
# => 192.169.0.0

以相反的顺序遍历列表OTOH,可以使用

完成
foreach item [lreverse $items] {
    puts $item
}

lmap item [lreverse $items] {
    set item
}

(后一个例子仅相当于lreverse $items;关键是你可以在脚本部分进行各种处理。)

文档: foreachincrip (package)lmap (for Tcl 8.5)lmaplreversepackageputsset