
Kolyann
31.12.2015
22:26:08
такой, хороший, годный костылёк
ну значит хуярь if(type)

Whore Amazing
31.12.2015
22:26:24
так я знаю какой там тип!
и он не такой как надо!

Google

Whore Amazing
31.12.2015
22:26:46
он все равно str несмотря сука на int(i)!
я блядь ссуся и несуся
что ему еще сделатб? с ложечки накормить?

Kolyann
31.12.2015
22:28:36
покажи функцию где это происходит

Whore Amazing
31.12.2015
22:29:04
def ipparse(iplist):
diap = iplist.split("-")
diap[0] = diap[0].split(".")
diap[1] = diap[1].split(".")
for i in diap[0]:
i = int(i)
for i in diap[1]:
i = int(i)
fdiap = []
while diap[0][0] <= diap[1][0]:
while diap[0][1] <= diap[1][1]:
while diap[0][2] <= diap[1][2]:
while diap[0][3] <= diap[1][3]:
fdiap.append(str(diap[0][0])+"."+str(diap[0][1])+"."+str(diap[0][2])+"."+str(diap[0][3]))
diap[0][3] += 1
diap[0][2] += 1
diap[0][1] += 1
diap[0][0] += 1
return fdiap

Nikita
31.12.2015
22:29:44
он не надо так делать

Whore Amazing
31.12.2015
22:29:50
я знаю

Nikita
31.12.2015
22:29:58
там точно есть баг

Whore Amazing
31.12.2015
22:30:03
я знаю!

Kolyann
31.12.2015
22:30:06
for i in diap[0]:
i = int(i)
for i in diap[1]:
i = int(i)

Whore Amazing
31.12.2015
22:30:09
да

Kolyann
31.12.2015
22:30:12
у тебя не меняется сам диап

Whore Amazing
31.12.2015
22:30:18
меняется же

Nikita
31.12.2015
22:30:24
неа

Google

Kolyann
31.12.2015
22:30:29
diap[0] = [int(i) for i in diap[0]]

Whore Amazing
31.12.2015
22:30:31
с хера?

Kolyann
31.12.2015
22:30:32
вот так попробуй)
с такого хера что меняется итератор
а не сам массив

Whore Amazing
31.12.2015
22:30:42
хм, попробую
блЯ, ну пиздец

Kolyann
31.12.2015
22:30:55
ты берёшь итератор и присваиваешь ему инт

Whore Amazing
31.12.2015
22:31:00
чому об этом в книжке не пишут

Kolyann
31.12.2015
22:31:02
листу от этого не горячо не холодно

Whore Amazing
31.12.2015
22:31:54
понял
йес, все пашет
осталось запустить это все где-нибудь у того, у кого инет не глючит
а то у меня даже не тестится
Или чо, мб инструкцию ему написать?
ну чо, затестит кто?

Pavel
01.01.2016
04:50:50
отложите в сторону четырёхмерное дилдо, преобразуйте ваши ip в числа, и сделайте range()

Whore Amazing
01.01.2016
06:27:23
лень

Pavel
01.01.2016
06:39:18
ок.

Google

Whore Amazing
01.01.2016
06:40:06
работает - не трогаем :)

Pavel
01.01.2016
06:40:24
код от 3:29 не работате.

Whore Amazing
01.01.2016
06:43:47
все пофикшено.

Pavel
01.01.2016
06:46:02
iprange("1.1.1.10-1.1.3.20") нормально отрабатывает?
ipparse

Whore Amazing
01.01.2016
06:53:38
да

Kolyann
01.01.2016
08:05:17
я бы вообще написал преобразовалку стринги ip в инт
оно ж в общем-то им и является)

Ilya
01.01.2016
08:10:07
https://github.com/google/ipaddr-py/
а чо готовую либу не взять, вы чего с ип адресами делаете?

Kolyann
01.01.2016
08:10:38
взять готовую либу для слабаков не умеющих кататься на велосипеде

Ilya
01.01.2016
08:11:02
просто если либу не брать - надо сети понимать норм

Ilya
01.01.2016
08:11:11
а то напишешь ещё один SDN потому что не потянул в сети
устал я от них уже

Whore Amazing
01.01.2016
08:14:03
да нет, там все простейше
минимализм - это мой понёк

Pavel
01.01.2016
08:47:08
print(ipparse("1.1.1.10-1.1.3.20"))
['1.1.1.10', '1.1.1.11', '1.1.1.12', '1.1.1.13', '1.1.1.14', '1.1.1.15', '1.1.1.16', '1.1.1.17', '1.1.1.18', '1.1.1.19', '1.1.1.20']
это не то, что бы я думал получить, но хозяин - барин.

Ilya
01.01.2016
08:49:17
опасно именно так делать
и вообще зачем? :)

Google

Pavel
01.01.2016
08:50:31
Илья, вопрос "зачем" к чему относится?

Whore Amazing
01.01.2016
08:51:00
print(ipparse("1.1.1.10-1.1.3.20"))
['1.1.1.10', '1.1.1.11', '1.1.1.12', '1.1.1.13', '1.1.1.14', '1.1.1.15', '1.1.1.16', '1.1.1.17', '1.1.1.18', '1.1.1.19', '1.1.1.20']
хм, косячокс
надо пофиксить

Ilya
01.01.2016
08:51:32
nmap -p21 -sT 10.1.0.0/22

Pavel
01.01.2016
08:51:55
я про это два часа назад спрашивал. ПОхоже, в новом году у меня открылись способности к дистанционному поиску багов.

Admin
ERROR: S client not available

Ilya
01.01.2016
08:53:16
я почему про либу и спрашивал
в адреса надо уметь ;)

Whore Amazing
01.01.2016
08:53:45
вроде все как надо дела. хотя на тот момент я не спал с прошлого года, так что мог ошибиться.
ну да, поправил.
и нашел еще гору багов :\
да уж, блять, проще через range()

Pavel
01.01.2016
09:01:49
опыт - сын ошибок трудных.

Whore Amazing
01.01.2016
09:04:24
баги - сыны ошибкок трудных.
а опыт - побочный эффект...

Artem
01.01.2016
09:08:01
Стандартная же либа есть https://docs.python.org/3/library/ipaddress.html

Whore Amazing
01.01.2016
09:09:43
это есть в том линке на соф
идеально
схоронил

Sharkus
01.01.2016
09:59:44
идеально
схоронил
def ipparse(diap):
ips = diap.split('-')
ipsd = [ip.split('.') for ip in ips]
ipsi = []
for ip in ipsd:
m = 1
d = 0
ip.reverse()
for ipd in ip:
d, m = d + int(ipd)*m, m*16*16
ipsi.append(d)
if ipsi[0] - ipsi[1] > 0:
ipsi[0], ipsi[1] = ipsi[1], ipsi[0]
result = []
for ip in range(ipsi[0], ipsi[1]+1):
result.append('{}.{}.{}.{}'.format(ip // 256 // 256 // 256,
ip // 256 // 256 % 256,
ip // 256 % 256,
ip % 256))
return result
Если вдруг всё же нужен именно костыль.

Artem
01.01.2016
10:02:07
Есть где разбавить код лямбдами

Google

Sharkus
01.01.2016
10:02:33
Я хотел, но потом стало лееень.
Оставим это как упражнение читателю типа "сделай однострочник".

Whore Amazing
01.01.2016
10:13:49
нет, я уже сделал через стандартную либу. код вышел короче и более читабелен)
могу кинуть
def ipparse(iplist):
diap = iplist.split("-")
diap[0] = ipaddress.ip_address(diap[0])
diap[1] = ipaddress.ip_address(diap[1])
fdiap = []
while diap[0] <= diap[1]:
fdiap.append(diap[0])
diap[0]+=1
return fdiap
а еще в прошлом году я заметил, что превращение в однострочник вида b if a else c не работает с return'ами

Sharkus
01.01.2016
10:18:24
Ну да, через либы код почти всегда короче и более читабелен... До тех пор, пока тебе не понадобится залезть в эту самую либу :)

Whore Amazing
01.01.2016
10:18:51
а тут не надо лезть) весь нужный функционал написан, скрипт готов
уже в сеть вылил

Sharkus
01.01.2016
10:19:48
Да не вопрос, я же образно :)

Artem
01.01.2016
10:19:56
a, b = list(map(ip_address, iplist.split('-')))
result = []
while a <= b:
result.append(a)
a += 1
return result

Whore Amazing
01.01.2016
10:20:08
с детства не любил эти map'ы

Artem
01.01.2016
10:21:22
просто тут как раз ты явно делаешь map

Whore Amazing
01.01.2016
10:21:37
знаю -.-

Pavel
01.01.2016
11:04:25

Kolyann
01.01.2016
14:17:08
минутка лингвистических заёбов