1

我有一个 IP 块计算器 Web 应用程序,它将根据斜杠打印一系列 IP 地址。但是,它仅将范围中的最后一条记录保存到文本字段中。我希望能够将其全部保存到文本字段中。

我在我的代码中使用 python-ipy。查看最后一个 for 循环"rangeip"

这是我的代码:

#ip block and range save function 

def save(obj, *args, **kwargs):

        subnet = unicode(obj.subnet)

        first = IP(obj.ip_start + subnet).net()
        broadcast = IP(obj.ip_start + subnet).broadcast()

        print first
        print broadcast

        obj.broadcast_ip = broadcast

        ip_block = IP(obj.ip_start + subnet)
        ip_block.WantPrefixLen = 3


        ip = IP(obj.ip_start + subnet)

        for gateway in ip[1]:
            obj.gateway_ip = gateway
            print gateway

        #rangeip for loop

        for rangeip in ip:
            obj.ip_range = rangeip
            print rangeip

        super(IP_block, obj).save(*args, **kwargs)

这就是我想要的,能够将列表保存到文本字段中,它只保存最后一个 ip:192.168.1.31

我想要的例子:

192.168.1.1 192.168.1.0 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14 192.168. 1.15 192.168.1.16 192.168.1.17 192.168.1.18 192.168.1.19 192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23 192.168.1.24 192.168.1.25 192.168.1.26 192.168.1.27 192.168.1.28 192.168.1.29 192.168.1.30 192.168.1.31

任何帮助都非常感谢。

4

1 回答 1

1

obj.ip_range = rangeip是一个任务。您正在用obj.ip_range新的rangeip.

你需要做的是:

obj.ip_range += "%s"%rangeip
于 2013-05-29T01:35:43.960 回答