Как мне указать диапазоны IP-адресов (регулярное выражение) для SkipHosts в файлах конфигурации AWStats?

StackOverflow https://stackoverflow.com/questions/158008

  •  03-07-2019
  •  | 
  •  

Вопрос

Я обновляю некоторые старые конфигурационные файлы AWStats, чтобы отфильтровать некоторые определенные диапазоны IP.Вот соответствующий раздел конфигурационного файла:

# Do not include access from clients that match following criteria.
# If your log file contains IP addresses in host field, you must enter here
# matching IP addresses criteria.
# If DNS lookup is already done in your log file, you must enter here hostname
# criteria, else enter ip address criteria.
# The opposite parameter of "SkipHosts" is "OnlyHosts".
# Note: Use space between each value. This parameter is not case sensitive.
# Note: You can use regular expression values writing value with REGEX[value].
# Change : Effective for new updates only
# Example: "127.0.0.1 REGEX[^192\.168\.] REGEX[^10\.]"
# Example: "localhost REGEX[^.*\.localdomain$]"
# Default: ""
#
SkipHosts=""

Я хочу, например, отфильтровать X.Y.Z.[97-110]

Я попробовал этот формат (Примечание:Не эти значения IP, используя частный диапазон в качестве примера):

REGEX[^192\.168\.1\.[97-110]]

Но это вызывает следующую ошибку:

Ошибка CGI
Указанный CGI приложение неправильно себя вело, не возвращая полный набор HTTP заголовков.

Я ненавижу, когда все использует другой синтаксис регулярных выражений.У кого-нибудь есть какие-нибудь идеи, как это работает, и как я могу указать здесь диапазон?

Это было полезно?

Решение

Предполагая, что символьные классы поддерживаются в РЕГУЛЯРНОМ ВЫРАЖЕНИИ [ ]:

SkipHosts = "REGEX[^192\.168\.1\.(9[7-9]|10[0-9]|110)$]"

Другие советы

Регулярное выражение, которое вы использовали, указывает от 9 или 7 до 1, или 1, или 0, что приводит к путанице.

Вы можете использовать

SkipHosts="REGEX[^192\.168\.1\.(97|98|99|100|101|102|103|104|105|106|107|108|109|110)]"

если вы так склонны

Запускаются ли AWStats, если вы оставляете SkipHosts пустыми?В противном случае попробуйте проверить наличие ошибок с помощью утилиты командной строки.Например, с помощью Windows:

c:\perlpath\perl.exe awstats.pl config=yourconfigfile -update -logfile=yourlogfile

Это должно дать более подробную информацию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top