လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> dns_get_record function ရဲ့အခြေခံအဆောက်အအုံတွေကဘာတွေလဲ။ PHP တွင် DNS_GET_RECORCord ကိုထိရောက်စွာအသုံးပြုရမည်နည်း။

dns_get_record function ရဲ့အခြေခံအဆောက်အအုံတွေကဘာတွေလဲ။ PHP တွင် DNS_GET_RECORCord ကိုထိရောက်စွာအသုံးပြုရမည်နည်း။

gitbox 2025-06-27

PHP တွင် dns_get_record () function သည်သတ်မှတ်ထားသောဒိုမိန်းအမည်အတွက် DNS Record သတင်းအချက်အလက်ရယူရန်အလွန်လက်တွေ့ကျတဲ့ကိရိယာတစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုသည် dns server မှမှတ်တမ်းများကိုတိုက်ရိုက်မှတ်တမ်းများကိုတိုက်ရိုက်မေးမြန်းနိုင်ရန်စွမ်းရည်ဖြင့်ထောက်ပံ့ပေးပြီးကွန်ယက်ရှာဖွေခြင်း, မေးလ်စနစ်ဖွံ့ဖြိုးတိုးတက်မှု, ဒိုမိန်းအမည်ကိရိယာပလက်ဖောင်းနှင့်အခြားအခြေအနေများတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်။

1 ။ DNS_GEGED_RECord ၏အခြေခံအသုံးပြုမှု

DNS_GET_RECORCord () ၏ function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$hostname</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$type</span></span><span> = DNS_ANY [, </span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$authns</span></span><span> [, </span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$addtl</span></span><span> ]]] )
</span></span>
  • $ hostname : စုံစမ်းဖို့ host name (ဥပမာ - ဥပမာ - ဥပမာ ) ။

  • $ Type : Query အတွက် DNS မှတ်တမ်းအမျိုးအစား။ အသုံးအများဆုံးအမျိုးအစားများပါဝင်သည်:

    • DNS_A : IPv4 လိပ်စာ

    • DNS_AAAA : IPV6 လိပ်စာ

    • DNS_MX : မေးလ်လဲလှယ်ရေးမှတ်တမ်း

    • DNS_CNNAME : Alias ​​Record

    • DNS_TXT : စာသားမှတ်တမ်း

    • DNS_NS : ဒိုမိန်းအမည်ဆာဗာ

    • DNS_SOA : ခွင့်ပြုချက်အေဂျင်စီမှတ်တမ်းကိုစတင်ခြင်း

    • DNS_any : မှတ်တမ်းများအားလုံး

  • $ authns (optional): authentative name server အချက်အလက်ကိုပြန်ပို့။

  • $ addtl (optional ကို): အပိုမှတ်တမ်းများပြန်ပို့။

ဥပမာ 1: စံချိန်တင်မှတ်တမ်းကိုရှာဖွေပါ

 <span><span><span class="hljs-variable">$records</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span>(</span><span><span class="hljs-string">"example.com"</span></span><span>, DNS_A);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$records</span></span><span>);
</span></span>

ဤကုဒ်သည်မှတ်တမ်းများပါ 0 င်သည့် array တစ်ခုစီ ကို ပြန်လည်ပေးပို့လိမ့်မည်။ element တစ်ခုစီသည် အိမ်ရှင် , အမျိုးအစား , အိုင်ပီ ,

ဥပမာ 2: MX မှတ်တမ်းများကိုရှာဖွေခြင်း

 <span><span><span class="hljs-variable">$mxRecords</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span>(</span><span><span class="hljs-string">"example.com"</span></span><span>, DNS_MX);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$mxRecords</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$record</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Mail Server: <span class="hljs-subst">{$record['target']}</span></span></span><span>, Priority: </span><span><span class="hljs-subst">{$record['pri']}</span></span><span>\n";
}
</span></span>

2 ။ dns_get_record ကိုထိရောက်စွာအသုံးပြုခြင်းအတွက်သိကောင်းစရာများ

ဤလုပ်ဆောင်ချက်ကိုပိုမိုထိရောက်စွာအသုံးပြုရန်လက်တွေ့ကျသောအကြံပေးချက်များနှင့်အကြံပြုချက်များစွာရှိသည်။

1 ။ စံချိန်တင်အမျိုးအစားသတ်မှတ်ပါ

DNS_ANY ကို မသုံးပါနှင့်၎င်းသည်တစ်ချိန်တည်းတွင်မှတ်တမ်းများအားလုံးကိုတစ်ပြိုင်နက်တည်းတောင်းဆိုလိမ့်မည်။ အမှန်တကယ်အသုံးပြုမှုတွင်လိုအပ်သောမှတ်တမ်းအမျိုးအစားကိုသာမေးမြန်းသင့်သည်။

2 ။ မိတ္တူပွားများကိုလျှော့ချရန် cache ကိုသုံးပါ

DNS_GET_RECORD () သည် ရလဒ်များကိုမသိမ်းဆည်းပါ။ ဖုန်းခေါ်ဆိုသည့်အခါတိုင်းတကယ့် DNS Query ကိုကွပ်မျက်ခံရသည်။ လျှောက်လွှာသက်တမ်းအတွင်းရှိဒိုမိန်းအမည်ကိုထပ်တလဲလဲမေးမြန်းရန်လိုအပ်ပါက၎င်းကို Cacu သို့မဟုတ် Memcued ကဲ့သို့သော cacu သို့မဟုတ် memcached) နှင့် တွဲဖက်. အသုံးပြုရန်အကြံပြုသည်။

 <span><span><span class="hljs-variable">$cacheKey</span></span><span> = </span><span><span class="hljs-string">'dns_a_example_com'</span></span><span>;
</span><span><span class="hljs-variable">$records</span></span><span> = </span><span><span class="hljs-title function_ invoke__">apcu_fetch</span></span><span>(</span><span><span class="hljs-variable">$cacheKey</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-variable">$records</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span>(</span><span><span class="hljs-string">"example.com"</span></span><span>, DNS_A);
    </span><span><span class="hljs-title function_ invoke__">apcu_store</span></span><span>(</span><span><span class="hljs-variable">$cacheKey</span></span><span>, </span><span><span class="hljs-variable">$records</span></span><span>, </span><span><span class="hljs-number">300</span></span><span>); </span><span><span class="hljs-comment">// သိုကာတာ5မိနစ်</span></span><span>
}
</span></span>

3 ။ ကိုင်တွယ်ခြင်းနှင့်ရလဒ်စိစစ်အတည်ပြုအမှား

DNS_GET_RECORCOR () query ပျက်ကွက်သည့်အခါ မှားယွင်းသော ပြန်လာလိမ့်မည်။ ထို့ကြောင့် Return Value Checks ကိုထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အမြဲတမ်းဖျော်ဖြေသင့်သည်။

 <span><span><span class="hljs-variable">$records</span></span><span> = </span><span><span class="hljs-title function_ invoke__">dns_get_record</span></span><span>(</span><span><span class="hljs-string">"example.com"</span></span><span>, DNS_MX);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"DNS စုံစမ်းမှုမအောင်မြင်ပါ"</span></span><span>);
    </span><span><span class="hljs-comment">// သင်၏လိုအပ်ချက်များနှင့်အညီမှားယွင်းသောယန္တရားသို့မဟုတ်အသုံးပြုသူ prompts များကိုလုပ်ဆောင်နိုင်သည်</span></span><span>
}
</span></span>

4 ။ အမျိုးမျိုးသောလယ်ကွင်းများကိုခွဲခြမ်းစိတ်ဖြာပါ

ကွဲပြားခြားနားသော DNS Record fields အမျိုးအစားများအနည်းငယ်ကွဲပြားခြားနားပါသည်။ ဥပမာအားဖြင့်, စံချိန် စံညွှန်းတွင် IP နယ်ပယ်တစ်ခု ရှိပါသည်။ MX Record တွင် PRI နှင့် ပစ်မှတ် ရှိသည်။ ဤအချက်အလက်များကိုပြုပြင်သောအခါဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာကွဲပြားခြားနားမှုများကိုသင်ဂရုပြုသင့်သည်။

 <span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$records</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$record</span></span><span>) {
    </span><span><span class="hljs-keyword">switch</span></span><span> (</span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'type'</span></span><span>]) {
        </span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'A'</span></span><span>:
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IP: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'ip'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
            </span><span><span class="hljs-keyword">break</span></span><span>;
        </span><span><span class="hljs-keyword">case</span></span><span> </span><span><span class="hljs-string">'MX'</span></span><span>:
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"MX: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'target'</span></span><span>] . </span><span><span class="hljs-string">" (Priority: "</span></span><span> . </span><span><span class="hljs-variable">$record</span></span><span>[</span><span><span class="hljs-string">'pri'</span></span><span>] . </span><span><span class="hljs-string">")\n"</span></span><span>;
            </span><span><span class="hljs-keyword">break</span></span><span>;
    }
}
</span></span>

3 ။ အကျဉ်းချုပ်

PHP ၏ DNS_GET_GEGECORECord () function သည် Dynamic DNS မေးမြန်းချက်များလိုအပ်သည့်အခြေအနေများအတွက်အလွန်သင့်လျော်သောဒိုမိန်းအမည် resolution resolution resolution resolution များကိုတိုက်ရိုက်ရယူရန်နည်းလမ်းဖြစ်သည်။ arealing query type ကိုသတ်မှတ်ခြင်းဖြင့် cache ယန္တရားကိုထည့်သွင်းခြင်းနှင့် resolution return value ကိုတည်ဆောက်ခြင်းကိုအမှန်တကယ် applications များတွင်ပိုမိုထိရောက်စွာနှင့်လုံခြုံစွာအသုံးပြုနိုင်သည်။ DNS-Related function များကိုတီထွင်သည့်အခါ DNS_GET_GECORECord () သည်မရှိမဖြစ်လိုအပ်သောကိရိယာတစ်ခုဖြစ်သည်။