كيف يمكنني تحديد نطاقات IP (regex) للتزلج في ملفات تكوين 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=""

أريد ، على سبيل المثال ، تصفية XYZ [97-110

جربت هذا التنسيق (ملاحظة: ليس قيم IP هذه ، باستخدام النطاق الخاص كمثال):

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

لكنه يسبب الخطأ التالي:

خطأ CGI
تم تصرف تطبيق CGI المحدد من خلال عدم إرجاع مجموعة كاملة من رؤوس HTTP.

أنا أكره كيف يستخدم كل شيء بناء جملة Regex مختلف. هل لدى أي شخص أي فكرة عن كيفية عمل هذا ، وكيف يمكنني تحديد نطاق هنا؟

هل كانت مفيدة؟

المحلول

على افتراض أن فئات الأحرف مدعومة داخل Regex []:

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

نصائح أخرى

يحدد regex الذي استخدمته 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