Перебор ip адресов в диапазоне

Есть диапазон ip адресов задаваемый в виде 192.168.0.1-192.168.0.3, и надо его пропинговать. У меня есть идея в таком виде: начиная с крайнего правого октета начинать перебор и отсылать запросы. Я реализую это так:

def ping(ip_p_1,ip_p_2):
if (int(ip_p_1[3]) < int(ip_p_2[3])):
    for i in range(int(ip_p_1[3]),int(ip_p_2[3])+1):
        ip_p_1[3] = str(i)
        request(ip_p_1)

Но это будет работать в том случае, если последний октет конечного ip больше начального, а если диапазон задан в виде 192.168.0.3-192.168.0.1? И еще одна проблема, как в таком случае реализовать перебор, если, например, второй октет с конца конечного адреса больше,например : 192.168.0.1-192.168.3.1? Подскажите направление в реализации данного алгоритма или, если есть подобные решения, ссылки на них.


Ответы (0 шт):