гхм… какой сложный код. Я его не понял. Если я правильно понял вашу задачу, то вот:
def input_data():
input_ip = raw_input ('Enter range of ip (x.x.x.x-x.x.x.x): ')
return input_ip.split('-')
def ipgen(oct1,oct2,oct3,oct4):
for o1 in xrange(oct1[0],oct1[1]+1):
for o2 in xrange(oct2[0],oct2[1]+1):
for o3 in xrange(oct3[0],oct3[1]+1):
for o4 in xrange(oct4[0],oct4[1]+1):
yield '%s.%s.%s.%s' % (o1,o2,o3,o4)
def range_maker(ip1,ip2):
return ipgen( [ i for i in zip( ip1.split('.'), ip2.split('.') ) ] )
на основании моей функции вот отсюда -
http://www.python.su/forum/viewtopic.php?id=6238Специально взял самый читаемый вариант.
Проверку того, что первый ip должен быть меньше второго(и прочие плюшки) сами прикрутите.