Russian Qt Forum
Ноябрь 23, 2024, 02:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Регулярные выражения для проверки ввода ip адреса, порта и http прокси?  (Прочитано 6616 раз)
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« : Ноябрь 22, 2016, 16:35 »

Добрый день, господа форумчане.
Задался тут вопросом верного задания регулярных выражений для проверки ввода ip адреса, порта и http прокси.
Пока нашел примеры только по регулярным выражениям для проверки ip. Но в основном все они уязвимы.
Может кто-то уже искал подобную инфу, и сможет поделится информацией.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Ноябрь 22, 2016, 23:39 »

А к чему уязвимы?
Записан

billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #2 : Ноябрь 23, 2016, 12:12 »

А к чему уязвимы?

Пропускают неверный ввод. К примеру дают возможность ввести некорректный ip адрес.
« Последнее редактирование: Ноябрь 23, 2016, 12:17 от billy4685 » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Ноябрь 23, 2016, 12:24 »

Гугл рулит Улыбающийся

https://habrahabr.ru/post/123845/

Код:
Номер кредитки:
[0-9]{13,16}

ICQ:
([1-9])+(?:-?\d){4,}

Набор из букв и цифр (латиница):
^[a-zA-Z0-9]+$

Набор из букв и цифр (латиница + кириллица):
^[а-яА-ЯёЁa-zA-Z0-9]+$

Домен (например abcd.com):
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$

IPv4: (подкорректировано runcore)
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)

IPv6:
((^|:)([0-9a-fA-F]{0,4})){1,8}$

Имя пользователя (с ограничением 2-20 символов, которыми могут быть буквы и цифры, первый символ обязательно буква):
^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$

Пароль (Строчные и прописные латинские буквы, цифры):
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$

Пароль (Строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов):
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$

Дата в формате YYYY-MM-DD:
[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])

UPD. Более строгая проверка, предложенная runcore:
(19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)

Дата в формате DD/MM/YYYY:
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d

Целые числа и числа с плавающей точкой (разделитель точка):
\-?\d+(\.\d{0,})?

UUID:
^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$

Широта или долгота:
-?\d{1,3}\.\d+

UPD. E-mail (от kvf77):
^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$

UPD. URL на латинице. Если нужно распознавать и кириллические домены, необходимо изменить все «a-z0-9» на «а-яёa-z0-9» и добавить в список доменных зон «рф» (от kvf77):
~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i

UPD. Время в формате HH:MM:SS (от runcore):
^([0-1]\d|2[0-3])(:[0-5]\d){2}$

UPD. Mac-адрес (от tiahin):
([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}

Записан

Johnik
Крякер
****
Offline Offline

Сообщений: 339


Просмотр профиля
« Ответ #4 : Ноябрь 23, 2016, 12:48 »

Есть такая книга:

Ян Гойвертс, Стивен Левитан - Регулярные выражения. Сборник рецептов [2010]
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #5 : Ноябрь 23, 2016, 12:48 »

QHostAddress("my_ip").​isNull()
Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #6 : Ноябрь 23, 2016, 14:15 »

Всем спасибо за ответы. Воспользовался этой ссылкой http://a-panov.ru/регулярные-выражения-проверка-ip-на-кор/
С ip помогло, по аналогии сделал и для порта.
Всем спасибо за ответы.
« Последнее редактирование: Ноябрь 23, 2016, 14:17 от billy4685 » Записан
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #7 : Ноябрь 23, 2016, 14:16 »

Есть такая книга:

Ян Гойвертс, Стивен Левитан - Регулярные выражения. Сборник рецептов [2010]

Спасибо, не слышал еще об этой книге.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.