Python 2.7.12 netaddr.IPNetwork AddrFormatError

Python 2.7.12 netaddr.IPNetwork AddrFormatError,python,cidr,Python,Cidr,版本:Python 2.7.12 操作系统:Ubuntu 16.04.1 内核:4.4.0-31-generic#50 Ubuntu SMP 拱门:ppc64le NetAddress.IPNetwork出现以下故障: netaddr.core.addr格式错误:无效的IPNetwork“9.2.0.0/16” 我有一个功能: def innet2(ip, net): print("ip: "+ip, "net: " + net) ip = IPAddress(ip).value

版本:Python 2.7.12 操作系统:Ubuntu 16.04.1 内核:4.4.0-31-generic#50 Ubuntu SMP 拱门:ppc64le

NetAddress.IPNetwork出现以下故障: netaddr.core.addr格式错误:无效的IPNetwork“9.2.0.0/16”

我有一个功能:

def innet2(ip, net):
    print("ip: "+ip, "net: " + net)
    ip = IPAddress(ip).value
    print("ipnew: " + str(ip))
    network = IPNetwork(net)
    print("network-first: " + str(network.first))
    print("network-last: " + str(network.last))

    if ip >= network.first and ip <= network.last:
        return True
    else:
        return False
从getHostIPStr()调用时,它会生成AddrFormatError

def getHostIpStr():
    hostsStr = "-host "
    isChef = False
    print("namespace= " + namespace)
    print("FLAGS.job_name= " + FLAGS.job_name)
    print("FLAGS.network= " + FLAGS.network)
    ps_pods = v1.list_namespaced_pod(namespace, label_selector="job="
                                     + FLAGS.job_name)
    job = v1batch.list_namespaced_job(namespace,   label_selector="job="
                                      + FLAGS.job_name)
    worker_num = job.items[0].spec.parallelism
    items = ps_pods.items
    print("items=  ", len(items))
    print("worker_num=  " + str(worker_num))
    if (len(items) < worker_num):
        return False, "", False
    for i in range(0, len(items)):
        podIp = items[i].status.pod_ip
        print("podIp:" + podIp)
        print("localIp:" + localIp)
        if (i == 0 and podIp == localIp):
            isChef = True
        hostIPs = getIp(podIp)
        net = FLAGS.network
        print("len of Ips: " + str(len(hostIPs)))
        for j in range(0, len(hostIPs)):
            print("j: " + str(j), "hostIPs[j]: " + hostIPs[j],
                  "network: " + FLAGS.network)
            ip = hostIPs[j];
            res = innet2(ip, net)
            if (res is True):
                podIp = hostIPs[j]
                hostsStr = hostsStr + podIp
                break
        if (i < len(items)-1):
            hostsStr = hostsStr + ","
    return True, hostsStr, isChef
def getHostIpStr():
hostsStr=“-host”
isChef=False
打印(“名称空间=”+名称空间)
打印(“FLAGS.job_name=“+FLAGS.job_name”)
打印(“FLAGS.network=“+FLAGS.network”)
ps\u pods=v1。列出\u名称空间\u pod(名称空间,标签\u选择器=“作业=”
+标志。作业(名称)
job=v1batch.list\u namespaced\u job(名称空间,label\u selector=“job=”
+标志。作业(名称)
worker\u num=job.items[0].spec.parallelism
项目=ps_pods.items
打印(“items=,len(items))
打印(“worker_num=“+str(worker_num))
如果(长度(项目)<工人数量):
返回False,“,False
对于范围(0,长度(项目))中的i:
podIp=项目[i].status.pod_ip
打印(“podIp:+podIp”)
打印(“localIp:+localIp)
如果(i==0和podIp==localIp):
isChef=真
hostIPs=getIp(podIp)
net=FLAGS.network
打印(“IP的len:+str(len(hostIPs)))
对于范围(0,len(hostIPs))内的j:
打印(“j:+str(j),“hostIPs[j]:”+hostIPs[j],
“网络:”+标志。网络)
ip=主机ip[j];
res=innet2(ip,净)
如果(res为True):
podIp=hostIPs[j]
hostsStr=hostsStr+podIp
打破
如果(i
我发现了我的问题


我正在传递带引号的网络地址,而IPNetwork在尝试将ip地址的八位字节转换为十进制格式时失败,因为第一个八位字节中有字符串引号。

我发现了我的问题

我正在传递一个带引号的网络地址,而IPNetwork在尝试将ip地址的八位字节转换为十进制格式时失败,因为第一个八位字节中有字符串引号

def getHostIpStr():
    hostsStr = "-host "
    isChef = False
    print("namespace= " + namespace)
    print("FLAGS.job_name= " + FLAGS.job_name)
    print("FLAGS.network= " + FLAGS.network)
    ps_pods = v1.list_namespaced_pod(namespace, label_selector="job="
                                     + FLAGS.job_name)
    job = v1batch.list_namespaced_job(namespace,   label_selector="job="
                                      + FLAGS.job_name)
    worker_num = job.items[0].spec.parallelism
    items = ps_pods.items
    print("items=  ", len(items))
    print("worker_num=  " + str(worker_num))
    if (len(items) < worker_num):
        return False, "", False
    for i in range(0, len(items)):
        podIp = items[i].status.pod_ip
        print("podIp:" + podIp)
        print("localIp:" + localIp)
        if (i == 0 and podIp == localIp):
            isChef = True
        hostIPs = getIp(podIp)
        net = FLAGS.network
        print("len of Ips: " + str(len(hostIPs)))
        for j in range(0, len(hostIPs)):
            print("j: " + str(j), "hostIPs[j]: " + hostIPs[j],
                  "network: " + FLAGS.network)
            ip = hostIPs[j];
            res = innet2(ip, net)
            if (res is True):
                podIp = hostIPs[j]
                hostsStr = hostsStr + podIp
                break
        if (i < len(items)-1):
            hostsStr = hostsStr + ","
    return True, hostsStr, isChef