それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php で DNS からレコードを調べてIPアドレスを取り出す - dns_get_record

ドメイン名のDNSレコードを調べてIPアドレスを取得する

dns_get_recordDNSの値をクエリすることが出来ます。

<?php
dns_get_record('www.yahoo.co.jp', DNS_A)

gethostbynameの、古くからあるIPアドレスを調べる方法を取ることが出来ます。

<?php 
gethostbyname('www.yahoo.co.jp'))

dns_get_record を使った場合の取り出し例

CNAME で指定されたDNSレコードの場合は、 DNS_A をフラグとして入れてあげると、IPアドレスが取り出せる。

php > var_dump(dns_get_record('www.yahoo.co.jp', DNS_A));
array(1) {
  [0]=>
  array(5) {
    ["host"]=>
    string(16) "edge12.g.yimg.jp"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(120)
    ["type"]=>
    string(1) "A"
    ["ip"]=>
    string(14) "183.79.219.252"
  }
}
php > var_dump(dns_get_record('www.yahoo.co.jp'));
array(1) {
  [0]=>
  array(5) {
    ["host"]=>
    string(15) "www.yahoo.co.jp"
    ["class"]=>
    string(2) "IN"
    ["ttl"]=>
    int(815)
    ["type"]=>
    string(5) "CNAME"
    ["target"]=>
    string(16) "edge12.g.yimg.jp"
  }
}
php >

参考資料

https://www.php.net/manual/en/function.dns-get-record.php