import multiprocessing
def validateIpComponent(s):
return s.isdigit() and int(s)<256 and str(int(s))==s
def validateIp(s):
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
return all(pool.map(validateIpComponent, s.split('.', 3))) and s.count('.') == 3
Что-то вас на работу не возьмут, наверное. Ваша прога обломится в очередной раз. Например на этом адресе 0.001.32.2
Я ведь я даже вашего языка программирования не знаю
IvanGrozniy wrote:
Что-то вас на работу не возьмут, наверное. Ваша прога обломится в очередной раз. Например на этом адресе 0.001.32.2
Я ведь я даже вашего языка программирования не знаю
IvanGrozniy wrote:
Что-то вас на работу не возьмут, наверное. Ваша прога обломится в очередной раз. Например на этом адресе 0.001.32.2
Я ведь я даже вашего языка программирования не знаю
IvanGrozniy wrote:
Что-то вас на работу не возьмут, наверное. Ваша прога обломится в очередной раз. Например на этом адресе 0.001.32.2
Я ведь я даже вашего языка программирования не знаю
IvanGrozniy wrote:
Что-то вас на работу не возьмут, наверное. Ваша прога обломится в очередной раз. Например на этом адресе 0.001.32.2
Я ведь я даже вашего языка программирования не знаю
IvanGrozniy wrote:Кстати, Хамстера это тоже касается
Это похоже только вас касается
int("001") == 1
str(1) == "1"
Вы подумайте. Ваша прога же не работает. str(1) != "001"
А вообще, я, наверное, зря здесь спорю.
Так о чем и речь
s.isdigit() and int(s)<256 and str(int(s))==s
т.е. если вы передадите "001" - то ес-но вернется False. Что нам и нужно, типа подразумеваем, что компонента правильная, если она, например "25", а если "00025" - то считается неправильной. Это такой строгий парсер.
Хотя, например, утилиты вроде ping спокойно принимают числа с нулям, вроде "10.000025.1.1"
crypto5 wrote:Думаю что Иван считает что 01.01.01.01 это правильный адресс а Интерапт наоборот. Я угадал?
Да, скорее всего так и есть. Просто мы на прошлой страничке как бы сошлись на том, что делаем строгий валидатор. Есле менее строгий, то ес-но Хамстера код был бы еще короче, просто убрали бы последнюю проверку.
IvanGrozniy wrote:Кстати, Хамстера это тоже касается
Это похоже только вас касается
int("001") == 1
str(1) == "1"
Вы подумайте. Ваша прога же не работает. str(1) != "001"
А вообще, я, наверное, зря здесь спорю.
Так о чем и речь
s.isdigit() and int(s)<256 and str(int(s))==s
т.е. если вы передадите "001" - то ес-но вернется False. Что нам и нужно, типа подразумеваем, что компонента правильная, если она, например "25", а если "00025" - то считается неправильной.
Ну так, если нолики впреди приставить, то IP адрес все-равно правильный получится. Даже мой Сафари услужливо делает ссылку из последнего приведенного примера IP адреса.
Ох, как прав был автор задачки, говоря, что на ней 90% программистов отсеивается
Тем более вы еще плохой атитьюд проявили. Это плохо. Мда.
IvanGrozniy wrote:Ну так, если нолики впреди приставить, то IP адрес все-равно правильный получится. Даже мой Сафари услужливо делает ссылку из последнего приведенного примера IP адреса.
Ох, как прав был автор задачки, говоря, что на ней 90% программистов отсеивается
Тем более вы еще плохой атитьюд проявили. Это плохо. Мда.
IvanGrozniy wrote:Ну так, если нолики впреди приставить, то IP адрес все-равно правильный получится.
Если 001.001.001.001, то да, а Вы попробуйте 010.010.010.010, не думаю, что Вы хотели бы соединиться с 8.8.8.8
Во-во. Только писать это начал, что IvanGrozniy подставил нолики и получил IP адрес с octal числами.
Или пусть попробует даже набрать ping 010.010.010.010 и удивится.