Как обработать исключение ошибки сокета в python при проверке статуса списка доменов через цикл? - PullRequest
1 голос
/ 23 сентября 2019

Я проверяю статус хоста ip для списка домена с помощью socket.gethostbyname lib.Таким образом, у меня есть список доменов, который выполняет итерации по циклу, чтобы получить соответствующий IP для каждого и проверяя их по списку IP.

при итерации по списку доменов, если сокет не может вернуть IP длялюбой домен, он выдает ошибку исключения и прекращает проверку статуса для остальных доменов из списка


def verifY_And_get_Server_status():
    domains = ['a.com','b.com','c.com']
    ipList=['ip1','ip2','ip3']
    print("List of domins",domains)
    try:
        for value in domains:
            ip =get_HostName(value)
            print("IP of the domain ",ip)
        if ip in iplist:
              print('ip found', ip)
            else:
              print('Ip is not listed', ip)


    except ConnectionError as e:
        print("Error due to ")



def get_HostName(domainName):
    try:
        domain_ip = socket.gethostbyname(domainName)
        print("Domain IP is",domain_ip)
        return domain_ip

    except ConnectionError as e:
        print("Error log",e)


#Error iam getting
domain_ip = socket.gethostbyname(domainName)
socket.gaierror: [Errno 11001] getaddrinfo failed

Ожидается: мне нужно получить статус домена следующим образом: если сокет возвращает IP,условие if должно показывать ip, а если сокет не возвращает ip, оно также должно показывать ip и причину как сообщение.И цикл не должен прекращать проверку оставшихся доменных имен.

Фактически: во время итерации цикла предположим, что сокет не может вернуть ip для домена «a.com» из-за ошибки подключения или состояния отключения, он выдает ошибку исключения и цикл останавливает проверку статуса оставшегося домена из списка.

Оцените, если кто-нибудь может помочь в этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...