2016-06-02 5 views
0

dict ({ 'ip': '10 .198.0.12 '}, {'ip ': '10 .198.0.91'}) 등등 있습니다.dict에서 핑 ip가

나는 하나씩 dict에 ip를 핑 (ping)하고 pingable인지 확인해야한다. = cursor.fetchall() 메소드와 반환 변수 행을 나는 pyping 파이썬 라이브러리를 사용하고 있지만, 나는

I 행을 사용하여 데이터베이스에서의 IP의를 가져 오는 AM "을 DICT 개체가 어떤 속성이 분할하지 않았다"라는 오류가 발생합니다 내 함수 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 
+0

오케이 .... 그럼 당신의 질문은 무엇입니까? – CoryKramer

+3

dict이 없습니다. 당신은 딕셔너의 튜플을 가지고 있습니다. – Selcuk

답변

2

질문에 "IP 주소"는 없습니다. 보유하고있는 것은 의 IP 주소를 보유하고있는 이 dict입니다.

ping을 수행하려면 안에있는 의 ip 속성 만 필요합니다. 당신은 단지 실제 IP 번호와 함께 작동하고 {'ip': ''} 부분에 대해 잊지하려는 경우

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

또는 먼저 list로 변환 할 수있다.

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

이렇게하면 ['10.198.0.12', '10.198.0.91', ...]과 같은 IP 목록을 반복 할 수 있습니다.

+0

thanku :). 나는 이제 '/ 도달 할 수없는', '10 .135.0.10 '과 같은 o/p를 얻습니다. 이제 도달 할 수없는 모든 IP 목록을 별도로 원합니다. 그렇게하는 방법 ? –

+0

간단합니다.하지만 질문을 분명히해야합니다. 튜플'('도달 할 수 없음', '10 .135.0.10 ')은 정확히 무엇을 의미합니까? IP가 '10.135.0.10'에 도달 할 수 있습니까? 아니면 도달 할 수없는 IP 문자열이 "도달 할 수 없다"라는 단어로 바뀌었고 그대로 모든 IP 문자열은 도달 할 수있는 문자열입니까? – C14L

관련 문제