On Sat, Aug 22, 2009 at 01:34:53AM +0400, Artem Chuprina wrote: > Alexey Pechnikov -> [email protected] @ 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, и у сети > единицы могут быть только в маскированных разрядах. > > Ну хорошо, можно поначалу эту проверку забыть. Или забить на нее > сознательно. Но КАК можно ИСПРАВИТЬ несколько ошибок с некорректными > входными данными и так и не вставить ЭТУ проверку (которая сделает > невозможной следующую ошибку такого же типа)? Это какой же фигурности > должны быть заплатки!?
Угу. Я ему на то же самое уже указывал, но он не заметил. -- Stanislav -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

