рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкрд╣реБрдБрдЪ.рд▓реЙрдЧ рдЕрдкрд╛рдЪреЗ

рдПрдХ рдмрд╛рд░ рдореБрдЭреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдереА рдЬреЛ рдЕрдкрд╛рдЪреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ access.log рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреА рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рдерд╛ рдФрд░ рдореИрдВ рдХреБрдЫ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд▓рдЧрд╛ рдФрд░ рдореБрдЭреЗ рдЦреБрдж рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рдерд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рддреЛ, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ access.log рдлрд╝рд╛рдЗрд▓ рдХреНрдпрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

193.34.12.132 - - [20/Oct/2011:12:46:08 +0400] "GET /scripts/fancyzoom.min.js HTTP/1.1" 200 4435 "http://kropus.amarox.ru/" "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
193.34.12.132 - - [20/Oct/2011:12:46:08 +0400] "GET /bitrix/js/main/core/css/core_window.css?1318570950 HTTP/1.1" 200 44471 "http://kropus.amarox.ru/" "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
193.34.12.132 - - [20/Oct/2011:12:46:08 +0400] "GET /bitrix/templates/kropus/components/bitrix/menu/kropus/script.js?1315557673 HTTP/1.1" 200 469 "http://kropus.amarox.ru/" "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЖрдк рдЕрдкрд╛рдЪреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдКрдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рд░реВрдк рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕, рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп, рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╕рд╛рдЗрдЬ, рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдмреНрд░рд╛рдЙрдЬрд░ рдФрд░ рдУрдПрд╕ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд▓реЙрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрд╡рдпрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдПрдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓рдЧ рд╕реЗ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИ: рдкрддрд╛, рдЕрдиреБрд░реЛрдз рдХреА рд▓рдВрдмрд╛рдИ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдЖрджрд┐ред рдлрд┐рд░, рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐, рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛, рд╡рд╣ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЪрд╛рд╣рддрд╛ рд╣реИ: рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рддреБрд░рдВрдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реЗ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╡рд╛рдВрдЫрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ:
рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд░рдЦрдирд╛ рдкрд╣рд▓реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

$file_array = file(' ');


рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рд╣рдЬрд╛рд░ рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╕ рдлреНрд░реАрдЬ рд╣реЛ рдЬрд╛рдПрдЧреА рдпрд╛ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧреАред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдмрдбрд╝реА рд╣реИ, рддреЛ рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рд▓реЗрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдкрдХреЛ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
($ fp - fopen function рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреЙрдЗрдВрдЯрд░)

function get_log_string()
{
if (feof($fp))
{
return false;
}
$bits='';

for (;!feof($fp) && $bits != "\n";)
{
$bits .= fread($fp, 1);
}
return rtrim($bits, "\n");
}


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдПрдХ рдмрд┐рдЯ рдХреЛ рддрдм рддрдХ рдкрдврд╝рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рд╣рдо рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдВрдд рдкрд╣реБрдБрдЪ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЭреВрдареЗ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реВрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЬрдмрдХрд┐ ($ рд╕реНрдЯреНрд░рд┐рдВрдЧ = $ get_log_string ())
{
// рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ $ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ
// рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдВ
}

рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрдж рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рд▓рд╛рдЗрди рдкрд░ рдЬрд╛рдПрдВред
рдореИрдВрдиреЗ рдпрд╣ preg_match рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ред рдкреИрдЯрд░реНрди рд╕реЗрдЯ рдХрд░реЗрдВ

$pattern = "/(\S+) (\S+) (\S+) \[([^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (.*?) (\S+)\" (\S+) (\S+) (\".*?\") (\".*?\")/"


рд╣рдо рдЕрдВрдд рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ

preg_match ($pattern, $line, $result)


$ рдкреИрдЯрд░реНрди рд╣рдорд╛рд░рд╛ рдкреИрдЯрд░реНрди рд╣реИ
$ рд▓рд╛рдЗрди - рдкрдВрдХреНрддрд┐ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
$ рдкрд░рд┐рдгрд╛рдо - рдПрдХ рд╕рд░рдгреА рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╕рд░рдгреА рдХреЛ рдкрдардиреАрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

$formated['ip'] = $result [1];
$formated['identity'] = $result [2];
$formated['user'] = $result [3];
$formated['date'] = $result [4];
$formated['time'] = $result [5];
$formated['timezone'] = $result[6];
$formated['method'] = $result [7];
$formated['path'] = $result[8];
$formated['protocol'] = $result[9];
$formated['status'] = $result[10];
$formated['bytes'] = $result[11];
$formated['referer'] = $result[12];
$formated['agent'] = $result[13];


рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╣рдореЗрдВ рд▓реЙрдЧ рд▓рд╛рдЗрди рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдорд┐рд▓реАред рдЕрдм рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрдк рд╡рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдЪрд╛рд╣рд┐рдПред

Source: https://habr.com/ru/post/In131093/


All Articles