လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP function array_count_ ကို log in ရှိ IP ၏ဖြစ်ပျက်မှုအကြိမ်ရေကိုရေတွက်ရန်မည်သို့အသုံးပြုရမည်နည်း။

PHP function array_count_ ကို log in ရှိ IP ၏ဖြစ်ပျက်မှုအကြိမ်ရေကိုရေတွက်ရန်မည်သို့အသုံးပြုရမည်နည်း။

M66 2025-06-07

မှတ်တမ်းခွဲခြမ်းစိတ်ဖြာခြင်းကိုဖျော်ဖြေတင်ဆက်သည့်အခါများသောအားဖြင့် IP လိပ်စာများ၏ဖြစ်ပျက်မှုနှုန်းကိုရေတွက်ရန်လိုအပ်သည်။ PHP သည်ထိုကဲ့သို့သောလုပ်ငန်းများကိုကိုင်တွယ်ရန်ကူညီရန်အစွမ်းထက်သော built-in functions များစွာကိုထောက်ပံ့ပေးသည်။ ယနေ့ကျွန်ုပ်တို့ IP တစ်ခုချင်းစီ၏ဖြစ်ပျက်မှုနှုန်းကိုရေတွက်ရန် array_count_values ​​function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပါမည်။ ဤတွင် function ကိုမည်သို့အသုံးပြုရမည်ကိုဖေါ်ပြသည့်နမူနာကုဒ်ဖြစ်သည်။

ပထမ ဦး စွာမှတ်တမ်း၏ဖွဲ့စည်းပုံကိုကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် log file တစ်ခုရှိသည်ဆိုပါစို့, လိုင်းတစ်ခုစီသည်လက်လှမ်းမီမှုတောင်းဆိုမှုကိုအောက်ပါအတိုင်းဖော်ပြထားသည်။

 2025-04-17 12:34:56 192.168.1.1 /home
2025-04-17 12:35:00 192.168.1.2 /about
2025-04-17 12:36:01 192.168.1.1 /contact
2025-04-17 12:37:02 192.168.1.3 /home
2025-04-17 12:38:05 192.168.1.1 /blog

အထက်ပါမှတ်တမ်းသည် visit ည့်သည်တစ် ဦး စီ၏ IP လိပ်စာနှင့်ဝင်ရောက်ရန်စာမျက်နှာလမ်းကြောင်းကိုမှတ်တမ်းတင်ထားသည်။ ကျွန်ုပ်တို့၏ရည်မှန်းချက်မှာ LOG တွင် IP လိပ်စာတစ်ခုစီသည်မည်မျှမကြာခဏပေါ်လာသည်ကိုရေတွက်ရန်ဖြစ်သည်။

အဆင့် 1 - မှတ်တမ်းဖိုင်ကိုဖတ်ပါ

ကျွန်ုပ်တို့သည် log file ၏အကြောင်းအရာကို PHP သို့ပထမဆုံးဖတ်ရန်လိုအပ်သည်။ ၎င်းသည် File functions (သို့) file_get_contents များကို သုံး. အကောင်အထည်ဖော်နိုင်သည်။

 <?php
// မှတ်တမ်းဖိုင်များကိုဖတ်ပါ
$log = file('path_to_log_file.log');
?>

အဆင့် 2 - အိုင်ပီလိပ်စာကိုထုတ်ယူပါ

ထို့နောက်ကျွန်ုပ်တို့သည်လိုင်းတစ်ခုစီမှ IP လိပ်စာကိုထုတ်ယူရန်လိုအပ်သည်။ Row တစ်ခုစီ၏ IP address ကိုမှတ်တမ်းတင်ထားသောဒုတိယနေရာတွင်မှတ်တမ်းတင်ထားကြောင်းယူဆရသည့်အတိုင်းအတန်းတစ်ခုစီ၏အကြောင်းအရာများကို exploit function မှတဆင့်ဝေမျှနိုင်သည်။ ထို့နောက် IP address ကိုထုတ်ယူပါ။

 <?php
// အချည်းနှီးသောခင်းကျင်းစတိုးကိုအစပြုပါ IP စကားပေြာဟော
$ips = [];

foreach ($log as $line) {
    // နေရာတစ်ခုစီကိုနေရာများနှင့်ခွဲပါ,ယူဆချက် IP ဒုတိယလယ်ကွင်းပါ
    $parts = explode(' ', $line);
    // သေတမ်းစာ IP စကားပေြာဟော添加到数组中
    $ips[] = $parts[1];
}
?>

အဆင့် 3. ကြိမ်နှုန်းကိုရေတွက်ရန် Array_count_values ​​ကိုသုံးပါ

IP address များအားလုံးကို Extract ပြီးတာနဲ့ PHP ၏ Array_Count_Valuates function ကိုသုံးနိုင်သည်။

 <?php
// စာရင်းအင်း IP စကားပေြာဟော出现的频率
$ip_counts = array_count_values($ips);

// ရလဒ်ရလဒ်
foreach ($ip_counts as $ip => $count) {
    echo "IP: $ip - Count: $count\n";
}
?>

အဆင့် 4: နမူနာ output ကို

အောက်ပါမှတ်တမ်းရှိလျှင်

 2025-04-17 12:34:56 192.168.1.1 /home
2025-04-17 12:35:00 192.168.1.2 /about
2025-04-17 12:36:01 192.168.1.1 /contact
2025-04-17 12:37:02 192.168.1.3 /home
2025-04-17 12:38:05 192.168.1.1 /blog

အထက်ပါ PHP ကုဒ်ကိုအသုံးပြုပြီးနောက် output သည် -

 IP: 192.168.1.1 - Count: 3
IP: 192.168.1.2 - Count: 1
IP: 192.168.1.3 - Count: 1

အဆင့် 5. URL domain name ကိုမှတ်တမ်းတွင်အစားထိုးပါ

ကျွန်ုပ်တို့၏မှတ်တမ်းတွင် URLs များပါ 0 င်ပါဟုဆိုပါစို့။ ဤ URL ၏ဒိုမိန်းများ၏အမည်များကို M66.net ဖြင့်အစားထိုးရန်လိုအပ်သည်။ ၎င်းကိုအကောင်အထည်ဖော်ရန် strow_replace function ကိုသုံးနိုင်သည်။