@ru_python

Страница 86 из 9768
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
понял

йес, все пашет

осталось запустить это все где-нибудь у того, у кого инет не глючит

а то у меня даже не тестится

Или чо, мб инструкцию ему написать?

ну чо, затестит кто?

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
Илья, вопрос "зачем" к чему относится?

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
a, b = list(map(ip_address, iplist.split('-'))) result = [] while a <= b: result.append(a) a += 1 return result
ещё бы result.append заменить на yield a, и вообще бы славно получилось.

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

Страница 86 из 9768