များသောအားဖြင့်ကျွန်ုပ်တို့မြင်ရသော IP address format သည် 192.168.1.1 နှင့်ဆင်တူသည့် decimal ပုံစံဖြစ်သည်။ သို့သော်တစ်ခါတစ်ရံတွင် IP လိပ်စာကိုစဉ်ဆက်မပြတ် hexadecimal string ကိုစဉ်ဆက်မပြတ်ပါ။
C0A80101
ဤသည်အမှန်တကယ်မှာ 192.168.1.1 ၏ hexadecimal ဖော်ပြချက်ဖြစ်ပါတယ်။
hexadecimal နံပါတ် 2 ခုတိုင်းသည် IP address တွင် byte (8 bit) ကိုကိုယ်စားပြုသည်။
c0 = 192
A8 = 168
01 = 1
01 = 1
PHP's Built-in HexDec function သည် HEX ကြိုးများကိုဒ decimal မကိန်းများသို့ပြောင်းလဲနိုင်သည်။ သို့သော်၎င်းသည်နံပါတ်များကိုခြုံငုံသောနံပါတ်ကိုပြောင်းလဲပြီး Hexadecimal IP address ကိုမျဉ်းလေးပိုင်းခွဲခြားရန်တိုက်ရိုက်မသုံးနိုင်ပါ။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် hexadecimal string ကို bits နှစ်ခုဖြင့်ခွဲခြားရန်လိုအပ်ပြီး၎င်းကိုဒ decimal မကိန်းတစ်ခုထဲသို့ပြောင်းလဲရန်လိုအပ်သည်။
အောက်ဖော်ပြပါ PHP ကို သုံး. 8-bit hexadecimal IP လိပ်စာကိုအောက်ပါ script ကဖော်ပြရမည်။
<?php
function hexIpToDecimal($hexIp) {
// စာလုံးအကြီးသို့ထည့်သွင်းထားသော string ကိုပြောင်းပါ,ပေါင်းစည်းပုံစံကိုသေချာပါစေ
$hexIp = strtoupper($hexIp);
// အရှည်မှန်ကန်သောရှိမရှိစစ်ဆေးပါ(IPv4 ဟုတ်ကဲ့ 8 hexadecimal)
if (strlen($hexIp) !== 8) {
return false; // input ပုံစံအမှား
}
$ipParts = [];
// တိုင်းနှစ်ခုအတွက်အုပ်စုတစ်စု,ဒ decimal မလွှဲပါ
for ($i = 0; $i < 8; $i += 2) {
$partHex = substr($hexIp, $i, 2);
$partDec = hexdec($partHex);
$ipParts[] = $partDec;
}
// dotted format နဲ့ spliced
$decimalIp = implode('.', $ipParts);
return $decimalIp;
}
// စမ်းသပ်ဥပမာ
$hexIp = "C0A80101";
$decimalIp = hexIpToDecimal($hexIp);
echo "hexadecimalIP: $hexIp ကူးပြောင်းပြီးနောက်: $decimalIp\n";
?>
ရလဒ်များအစက်အပြောက်:
hexadecimalIP: C0A80101 ကူးပြောင်းပြီးနောက်: 192.168.1.1
ထည့်သွင်းစစ်ဆေးမှု <br> <br> function သည်ပထမ ဦး စွာ Extrexadecimal String သည် 8 bit (IPv4 ၏ 4 bytes နှင့်သက်ဆိုင်သည်) ဖြစ်သည်။
segmented အပြောင်းအလဲနဲ့ <br> <br> byte တစ်ခုကိုကိုယ်စားပြုရန်တစ်ကြိမ်တွင်ဇာတ်ကောင်နှစ်လုံးယူရန် Substr ကို သုံးပါ။
hexadecimal ကိုဒ decimal မမှပြောင်းလဲပါ ဂဏန်းနှစ်လုံးရှိသော hex string ကိုဒ decimal မနံပါတ်သို့ပြောင်းရန် HexDec function ကိုသုံးပါ။
format splicing <br> <br> Converted Decimal နံပါတ် 4 ခုကို DODIMAL နံပါတ်များနှင့်ချိတ်ဆက်ထားသောဒ decimal မ decimal is address များကိုထုတ်လုပ်ရန် DOT နံပါတ်များနှင့်ချိတ်ဆက်ပါ။
C0: A8: 01: 01 ကဲ့သို့သော hexadecimal IP address ကို delimited ပါက delimiter ကိုအရင်ဖယ်ရှားနိုင်သည်။ ထို့နောက်၎င်းကိုကိုင်တွယ်ရန်အထက်ပါနည်းလမ်းကိုအသုံးပြုနိုင်သည်။
$hexIp = str_replace(':', '', 'C0:A8:01:01');
$decimalIp = hexIpToDecimal($hexIp);
echo $decimalIp; // ထုတ်လုပ်ခြင်း:192.168.1.1
အထက်ပါနည်းလမ်းကို PHP ၏ HexDec function ကို အသုံးပြု. IPXadecimal တွင်ရှိသော Ixadecimal တွင်ရှိသော Ixadecimal Dot-part format ဖြင့်အသုံးပြုသော IP လိပ်စာကိုအလွယ်တကူပြောင်းလဲနိုင်သည်။ ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။