Alexey Pechnikov -> debian-russian@lists.debian.org @ Sat, 22 Aug 2009 00:29:31 +0400:
>> > atoi() в случае ошибки всегда возвращает 0. Собственно, других >> > возможностей просто нет. >> >> Мда. >> >> isinnet( '127.0.0.1', '127.0.0.0/8x' ) AP> Отлично, добавил еще несколько тестов и код поправил. AP> Еще обнаружил, что вот такой вызов возвращает значение: AP> SELECT NETLENGTH('a192.168.1.0/28'); AP> 16 AP> В принципе, все верно, т.к. определение размера сети производится AP> только по маске, но раз уж мы взялись добавлять везде проверки AP> корректности адреса и маски, то поправил и это. Сэнта, помнится, очень опасалась использовать тикловые программы по той же причине, по которой я опасаюсь использовать питоновские - вроде и сам язык неплох, но как-то пишут на нем исключительно люди, патологически не способные сразу написать без ошибок... Вот казалось бы - ну всего-то нужна пара проверок. Что переданный параметр - валидное строковое представление IP-адреса или сети. Т.е. что строка имеет вид число.число.число.число[/число], каждое из первых четырех чисел - от 0 до 255, последнее - от 0 до 32, и у сети единицы могут быть только в маскированных разрядах. Ну хорошо, можно поначалу эту проверку забыть. Или забить на нее сознательно. Но КАК можно ИСПРАВИТЬ несколько ошибок с некорректными входными данными и так и не вставить ЭТУ проверку (которая сделает невозможной следующую ошибку такого же типа)? Это какой же фигурности должны быть заплатки!? -- Танк - это не фаллический символ. Он просто _едет_... (С)энта -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org