Я хочу найти правило, iptables
внутри строки, у которой заблокирован порт — и я хочу показать этот порт.
Например, правило iptables -A OUTPUT -p tcp --dport 8080 -j DROP;
Я хотел бы иметь возможность искать по strpos
строка tcp --dport 8080 -j DROP
но с диапазоном чисел 1-65335 instead of 8080
,
Пожалуйста, извините за мой плохой английский.
Предполагая, что каждая строка имеет фиксированный формат, как в вашем примере, вы можете найти число, а затем проверить, находится ли в пределах диапазона, используя preg_match()
функция
$str = 'iptables -A OUTPUT -p tcp --dport 8080 -j DROP;';
preg_match('/\d+/', $str, $match); // search for matches
if ($match[0] >= 1 && $match[0] <= 65335) {
echo "Valid number found on string";
}
Шаблон /\d+/
поиск любой цифры от 1 до неограниченного количества раз
Заметки:
1. Вызывает неопределенные ошибки / предупреждения, когда в строке не найдено ни одного числа.
2. Может стать неточным, если найдено более 1 целого числа
Других решений пока нет …