လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ထိရောက်သောကွန်ယက်အခြေအနေစောင့်ကြည့်လေ့လာရန် PHP နှင့် ICMP protocols များကိုသုံးပါ

ထိရောက်သောကွန်ယက်အခြေအနေစောင့်ကြည့်လေ့လာရန် PHP နှင့် ICMP protocols များကိုသုံးပါ

M66 2025-06-13

ကွန်ယက်အခြေအနေကိုစောင့်ကြည့်ရန် PHP နှင့် ICMP protocols များကိုမည်သို့အသုံးပြုရမည်နည်း

အင်တာနက်ပေါ်မှလူကြိုက်များမှုဖြင့်ကွန်ရက်အခြေအနေစောင့်ကြည့်လေ့လာခြင်းသည် ပို. အရေးကြီးလာသည်။ ကွန်ယက်၏တည်ငြိမ်မှုနှင့်တုန့်ပြန်မှုအချိန်ကိုကျွမ်းကျင်စေခြင်းဖြင့်ကွန်ယက်အုပ်ချုပ်ရေးမှူးများသည်ပြ problems နာများကိုဖြေရှင်းနိုင်ရန်နှင့်ကွန်ရက်စွမ်းဆောင်ရည်ကိုအကောင်းဆုံးဖြစ်စေနိုင်သည်။ ဤဆောင်းပါးသည်ကွန်ယက်အခြေအနေစောင့်ကြည့်လေ့လာခြင်းအတွက် PHP နှင့် ICMP protocols များကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ဖော်ပြပြီးရည်ညွှန်းသည့်အတွက်ကုဒ်များဥပမာများကိုအသေးစိတ်ဖော်ပြထားသည်။

1 ။ ICMP protocol ကိုမိတ်ဆက်

ICMP (အင်တာနက် Control Message Protocol) သည် TCP / IP protocol မိသားစုတွင် subprotocol ဖြစ်သည်။ ၎င်းကိုအဓိကအားဖြင့်ကွန်ယက်ပြ troubl နာဖြေရှင်းခြင်း, ကွန်ရက်အခြေအနေများ, အသွားအလာထိန်းချုပ်မှုစသည်ဖြင့်အသုံးပြုသည်။ ICMP protocol သည် Target Host ကို "ECHO Request" မက်ဆေ့ခ်ျများပေးပို့ခြင်းနှင့်ကွန်ရက်တည်ငြိမ်မှုနှင့်သတင်းအချက်အလက်များကိုပေးပို့သည်ဖြစ်စေရှာဖွေသည်။

2 ။ PHP နှင့် ICMP protocol ဆက်သွယ်ရေး

PHP တွင် Socket function ကို သုံး. ကွန်ရက်အခြေအနေစောင့်ကြည့်လေ့လာမှုကိုနားလည်ရန် socket မှတဆင့် acmp တောင်းဆိုမှု packets များကို socket မှတဆင့်ပို့နိုင်သည်။ ဤတွင်ရိုးရိုး PHP Code Perficration:

<?php
// မူရင်း socket ကိုဖန်တီးပါ
$socket = socket_create(AF_INET, SOCK_RAW, getprotobyname('icmp'));
if ($socket === false) {
    echo 'Socket ကိုဖန်တီးရန်မအောင်မြင်ပါ:' . socket_strerror(socket_last_error());
    exit;
}

// အချိန်ကုန်ထားပါ
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 1, &#39;usec&#39; => 0);

// ping တောင်းဆိုမှု $ target = &#39;&#39; 192.168.0.1 &#39;;
$ ဒေတာ = &#39;ping&#39;;
$ icmp_packet = "pingdata";
$ checksum = 0;
$ အရှည် = strlen ($ ismp_packet);
အတွက် ($ i = 0; $ i <$ အရှည် - 1; $ i + = 2)
    $ checksum + = ord (substrchpackpacket, $ i, 2));
}
$ checksum = ((((((((((($ checksum >> (($ checksum >>) + ($ checksum & 0xFFFFF) +) နှင့် 0xFFFF);
$ icmp_packet = "" "" ။ အထုပ် (&#39;n&#39;, $ checksum) ။ $ icmp_packet;
Socket_sendto ($ socket, $ icmp_packket, strlen ($ icmp_packet), 0, $ ပစ်မှတ်

// တုံ့ပြန်မှု $ = &#39;&#39; &#39;&#39;;
$ port = 0;
Socket_recvfrom ($ socket, $ buf, 1024, 0, 0, $ မှ $ port);
ပဲ့တင်သံ &#39;&#39; တုံ့ပြန်မှုကိုလက်ခံရရှိခဲ့သည် - &#39; $ ကနေ။ &#39;&#39;: &#39;&#39; ။ $ port ။ &#39;&#39; ။ Strt_replace ("", &#39;&#39;, $ buf);

// အနီးကပ် socket socket_close ($ socket);
>

အထက်ဖော်ပြပါကုဒ်သည် ICMP တောင်းဆိုမှု packets များကိုမူလ socket တစ်ခု ဖန်တီး. Target Host မှတုန့်ပြန်မှုကိုလက်ခံရရှိသည်။ ကွဲပြားခြားနားသောစောင့်ကြည့်လေ့လာရေးလိုအပ်ချက်များကိုပစ်မှတ်ထားသော IP, ဒေတာအကြောင်းအရာနှင့်အချိန်ကုန်များစသည့် parameters တွေကိုပြုပြင်မွမ်းမံခြင်းဖြင့်မတူညီသောစောင့်ကြည့်လေ့လာရေးလိုအပ်ချက်များကိုမတူညီသောစောင့်ကြည့်လေ့လာရေးလိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်သည်။

3 ။ မှတ်စုဖို့အရာ

Network Monitoring အတွက်မူရင်း sockets များကိုအသုံးပြုသောအခါအောက်ပါအချက်များကိုဂရုပြုသင့်သည်။

  1. မူရင်း socket ကိုဖန်တီးရန်လုံလောက်သောခွင့်ပြုချက်လိုအပ်သည်။ များသောအားဖြင့် code သည်အုပ်ချုပ်ရေးမှူးအခွင့်ထူးများနှင့်အတူ run ရန်လိုအပ်သည်။
  2. Firewall သည် ICMP မက်ဆေ့ခ်ျများကူးစက်ခြင်းကိုပိတ်ဆို့ထားနိုင်သည်။
  3. ထုတ်လုပ်မှုပတ် 0 န်းကျင်အတွက်ကွန်ယက်စောင့်ကြည့်ရန်အတွက်ကွန်ယက်စောင့်ကြည့်ရန်အတွက်တတိယပါတီစာကြည့်တိုက်ကိုအသုံးပြုရန်အကြံပြုသည်။ ကုန်ကြမ်း socketets သည်အဆင့်မြင့်ထိန်းချုပ်မှုနှင့်စိတ်ကြိုက်ပြင်ဆင်ရန်လိုအပ်သောအဆင့်မြင့်အပလီကေးရှင်းများအတွက်သင့်တော်သည်။

အကျဉ်းချုပ်

PHP နှင့် ICMP protocols များမှတဆင့်ကွန်ယက်အုပ်ချုပ်ရေးမှူးများသည်ကွန်ရက်အခြေအနေများကိုထိရောက်စွာစောင့်ကြည့်ပြီးကွန်ယက်တည်ငြိမ်မှု, packet ဆုံးရှုံးမှုနှုန်းနှင့်တုံ့ပြန်မှုအချိန်ကိုစစ်ဆေးနိုင်သည်။ ဤဆောင်းပါးသည် RAW Socket ကိုမည်သို့ဖန်တီးရမည်, acmp မက်ဆေ့ခ်ျများကိုပို့ရန်နှင့်ကုဒ်စံနမူနာများမှတဆင့်တုံ့ပြန်မှုများကိုလက်ခံခြင်း,