Ce face dns_get_record
dns_get_record este funcția completă pentru DNS. Alegi tipul cu o constantă: DNS_A (IPv4), DNS_AAAA (IPv6), DNS_MX (servere de email), DNS_TXT (texte, de exemplu SPF sau verificări Google), DNS_NS, DNS_CNAME. Poți combina tipuri cu |.
Fiecare înregistrare este un tablou cu cheile host, class, ttl, type și cheile specifice tipului: ip pentru A, ipv6 pentru AAAA, pri și target pentru MX, txt pentru TXT.
Parametri
| Parametru | Descriere |
|---|---|
$hostname |
Domeniul interogat. |
$type |
Opțional. Tipul înregistrărilor, de exemplu DNS_MX. Implicit DNS_ANY, pe care multe servere DNS nu îl mai acceptă. |
$authoritative_name_servers |
Opțional. Variabilă pentru serverele de nume autoritare. |
$additional_records |
Opțional. Variabilă pentru înregistrările suplimentare. |
$raw |
Opțional. true interoghează exact tipul dat, ca număr. |
Ce returnează
Un tablou de înregistrări (gol dacă nu există niciuna) sau false la eroare.
Exemple
Exemplul 1: Adresele IPv4
<?php
foreach (dns_get_record("exemplu.ro", DNS_A) as $r) {
echo $r["ip"] . " (TTL " . $r["ttl"] . " s)\n";
}
Rezultat posibil (depinde de DNS)
203.0.113.25 (TTL 3600 s)
Exemplul 2: Serverele de email, după prioritate
Prioritatea mai mică este încercată prima.
<?php
$mx = dns_get_record("exemplu.ro", DNS_MX);
usort($mx, fn($a, $b) => $a["pri"] <=> $b["pri"]);
foreach ($mx as $r) {
echo $r["pri"] . " " . $r["target"] . "\n";
}
Rezultat posibil (depinde de DNS)
10 mx1.exemplu.ro
20 mx2.exemplu.ro
Exemplul 3: Există înregistrare SPF?
<?php
$txt = dns_get_record("exemplu.ro", DNS_TXT);
$spf = array_filter($txt, fn($r) => str_starts_with($r["txt"], "v=spf1"));
echo $spf ? "SPF: " . reset($spf)["txt"] : "Fără SPF";
Rezultat posibil (depinde de DNS)
SPF: v=spf1 include:_spf.exemplu.ro -all
Greșeli frecvente
- Folosești tipul implicit
DNS_ANY. Mulți furnizori DNS răspund incomplet sau deloc la această interogare. Cere tipul exact de care ai nevoie. - Citești
$r["ip"]din toate înregistrările unei interogări combinate. Doar înregistrările de tip A au cheiaip; verifică$r["type"].
Comenzi înrudite
dns_check_record: Verifică dacă un domeniu are înregistrări DNS de un anumit tip (implicit MX, adică poate primi email).dns_get_mx: Află serverele de email (înregistrările MX) ale unui domeniu și prioritățile lor.gethostbyname: Află adresa IPv4 a unui domeniu, de exemplu adresa IP din spatele unui site.gethostbynamel: Returnează toate adresele IPv4 ale unui domeniu, ca tablou.