在一个字典中ping ip

时间:2016-06-02 11:12:00

标签: python dictionary

我有一个词典({' ip':' 10.198.0.12'},{' ip':' 10.198.0.91&# 39;})等等。

我必须逐个ping一个字典中的ip,看看它是否可ping。 我正在使用 pyping python库,但我得到一个错误说 " dict对象没有属性拆分"

我使用rows = cursor.fetchall()方法从数据库中获取ip并将变量行返回到我的函数ping_ip。

def ping_ip(values):
  ip_used_list=[]
  ip_free_list=[]
  for ip in values:
   response = pyping.ping(ip)
    if response.ret_code == 0:
     ip_used_list.append(ip)
     print("reachable", ip)
    else:
     ip_free_list.append(ip)
     print("unreachable", ip)
  return ip_free_list

1 个答案:

答案 0 :(得分:2)

在你的问题中,你没有“知识产权法典”。您所拥有的是set dictip,其中包含一个包含IP地址的属性ip

要ping,您只需要dictset的{​​{1}}属性。

for ip_dict in values:
    response = pyping.ping(ip_dict['ip'])

或者,如果您只想使用实际的IP号码并忘记{'ip': ''}部分,则可以先将它们转换为list

def ping_ip(values):
    values = [x['ip'] for x in values]
    ...

这会为您提供一个IP列表,例如['10.198.0.12', '10.198.0.91', ...]来迭代。