Чтобы разрешить все адреса, начинающиеся с 10.10. Вы можете использовать следующее регулярное выражение:
10\.10\..*
\.
соответствует «точка» характер и .*
соответствует ни к чему.
Чтобы запретить все адреса, начиная с 10.
, вы должны написать что-то более сложное: [^1].*
соответствует чему-либо, что не начинается с 1
. Это нормально, если IP-адрес не начинается с 1
, мы разрешим его. 1[^0].*
соответствует любому IP-адресу, который начинается с 1
, но второй символ не 0
. 11xxx
, 15xxx
и т. Д. Но мы должны разрешать адреса, такие как 101.xxx
. Поэтому нам нужно будет написать 10[^.].*
. Это выражение позволит ничего, кроме 10.xxx
, что хорошо.
Таким образом, окончательное регулярное выражение будет выглядеть как альтернатива между всеми выражениями выше:
10\.10\..*|[^1].*|1[^0].*|10[^.].*
или немного упростить:
(10\.10\.|[^1]|1[^0]|10[^.]).*
Теперь лучше добавить ^
в начале и $
в конец, чтобы убедиться, что это выражение будет проверять весь IP-адрес:
^(10\.10\.|[^1]|1[^0]|10[^.]).*$
Я не проверял, что входное значение является IP-адресом, но я уверен, что tomcat не будет передавать ничего, кроме IP-адреса для этой проверки.
Как в стороне, какая странная идея от разработчиков Tomcat использовать только IP-фильтрацию на основе регулярного выражения, а не сетевую маску. – biziclop
Использование regex - overkill imo. У меня бы скорее была сетевая маска. – WillG