Rumah >pembangunan bahagian belakang >tutorial php >Fungsi resolusi DNS baharu dalam PHP8.1

Fungsi resolusi DNS baharu dalam PHP8.1

PHPz
PHPzasal
2023-07-08 19:07:541019semak imbas

Fungsi resolusi DNS baharu dalam PHP8.1

Dengan perkembangan pesat Internet, resolusi DNS (Domain Name System) telah menjadi salah satu operasi biasa dalam pembangunan web. Dalam versi PHP8.1, satu set fungsi resolusi DNS baharu diperkenalkan, membolehkan pembangun melaksanakan operasi resolusi DNS dengan lebih mudah. Artikel ini akan memperkenalkan fungsi resolusi DNS baharu dalam PHP8.1 dan melampirkan beberapa contoh kod untuk membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik. Fungsi

  1. dns_ai_getaddrinfo()

dns_ai_getaddrinfo() digunakan untuk mendapatkan maklumat alamat IP berdasarkan nama domain. Ia digunakan seperti berikut:

<?php
$hostname = "www.example.com";
$options = [
    'dns' => '8.8.8.8',
    'context' => null,
    'timeout' => 3,
    'hints' => 0
];

$result = dns_ai_getaddrinfo($hostname, $options);
if ($result !== false) {
    foreach ($result as $r) {
        echo $r['host'], ": ", $r['type'], " - ", $r['addr'], "
";
    }
} else {
    echo "Failed to resolve IP address for $hostname
";
}
?>

Dalam kod di atas, kami memasukkan nama domain untuk diselesaikan dan satu set pilihan, termasuk alamat pelayan DNS, konteks, tamat masa dan gesaan resolusi tambahan. Jika penghuraian berjaya, fungsi akan mengembalikan tatasusunan yang mengandungi berbilang maklumat alamat IP jika tidak, ia akan mengembalikan palsu. Fungsi

  1. dns_ai_gethostbyaddr()

dns_ai_gethostbyaddr() digunakan untuk mendapatkan nama hos berdasarkan alamat IP. Ia digunakan seperti berikut:

<?php
$ip = "192.0.2.1";
$options = [
    'dns' => '8.8.8.8',
    'context' => null,
    'timeout' => 3,
    'hints' => 0
];

$result = dns_ai_gethostbyaddr($ip, $options);
if ($result !== false) {
    echo "Hostname for $ip: $result
";
} else {
    echo "Failed to resolve hostname for $ip
";
}
?>

Dalam kod di atas, kami menghantar alamat IP untuk diselesaikan dan satu set pilihan, termasuk alamat pelayan DNS, konteks, tamat masa dan gesaan resolusi tambahan. Jika penghuraian berjaya, fungsi akan mengembalikan rentetan, iaitu nama hos jika tidak, ia akan mengembalikan palsu. Fungsi

  1. dns_ai_getaddrbyaddr()

dns_ai_getaddrbyaddr() adalah bertentangan dengan fungsi dns_ai_gethostbyaddr() dan digunakan untuk mendapatkan alamat IP berdasarkan nama hos. Ia digunakan seperti berikut:

<?php
$hostname = "www.example.com";
$options = [
    'dns' => '8.8.8.8',
    'context' => null,
    'timeout' => 3,
    'hints' => 0
];

$result = dns_ai_getaddrbyaddr($hostname, $options);
if ($result !== false) {
    echo "IP address for $hostname: $result
";
} else {
    echo "Failed to resolve IP address for $hostname
";
}
?>

Dalam kod di atas, kami memasukkan nama hos untuk diselesaikan dan satu set pilihan, termasuk alamat pelayan DNS, konteks, tamat masa dan gesaan resolusi tambahan. Jika penghuraian berjaya, fungsi akan mengembalikan rentetan, iaitu alamat IP jika tidak, ia akan mengembalikan palsu.

Ringkasan:

Fungsi resolusi DNS baharu PHP8.1 menyediakan pembangun dengan alatan resolusi yang lebih berkuasa, menjadikannya lebih mudah untuk memproses nama domain dan alamat IP. Kami boleh mendapatkan maklumat alamat IP berdasarkan nama domain melalui fungsi dns_ai_getaddrinfo(), mendapatkan nama hos berdasarkan alamat IP melalui fungsi dns_ai_gethostbyaddr() dan mendapatkan alamat IP berdasarkan nama hos melalui fungsi dns_ai_getaddrbyaddr() . Melalui fungsi ini, kami boleh melakukan operasi resolusi DNS dengan mudah, memberikan lebih banyak kemudahan untuk pembangunan Web kami.

Sila ambil perhatian bahawa fungsi ini hanya tersedia dalam PHP8.1 dan ke atas. Jika anda masih menggunakan versi lama PHP, adalah disyorkan untuk menaik taraf kepada PHP8.1 secepat mungkin untuk menikmati kemudahan yang dibawa oleh ciri baharu ini.

Atas ialah kandungan terperinci Fungsi resolusi DNS baharu dalam PHP8.1. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn