php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #65343 Not all DNS types supported in dns_get_record
Submitted: 2013-07-26 13:34 UTC Modified: 2021-08-30 14:37 UTC
Votes:6
Avg. Score:3.5 ± 1.8
Reproduced:4 of 5 (80.0%)
Same Version:2 (50.0%)
Same OS:2 (50.0%)
From: info at tvdw dot eu Assigned:
Status: Analyzed Package: Network related
PHP Version: 5.5.1 OS: any
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: info at tvdw dot eu
New email:
PHP Version: OS:

 

 [2013-07-26 13:34 UTC] info at tvdw dot eu
Description:
------------
For a little project I'm working on I need DNS_DS (43) and DNS_TLSA (52) support in dns_get_record, but these are currently not supported by PHP, together with a lot of other DNS records. Manually defining these constants to the correct DNS RRtype values gives the warning "dns_get_record(): Type .. not supported".

Test script:
---------------
<?php
$ds_record = dns_get_record('com', DNS_DS);
echo $ds_record['hash'];

Expected result:
----------------
E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CFC41A5766

Actual result:
--------------
Notice: Use of undefined constant DNS_DS - assumed 'DNS_DS' in ...
Warning: dns_get_record() expects parameter 2 to be long, string given in ...
NULL 

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-07-26 23:18 UTC] yohgaki@php.net
-Status: Open +Status: Analyzed
 [2013-07-26 23:18 UTC] yohgaki@php.net
It seems PHP only supports following values.

php > array_walk(get_defined_constants(), function($v, $k) {if 
(preg_match('/^DNS/', $k)) echo $k.' = '.$v.PHP_EOL;} );
DNS_A = 1
DNS_NS = 2
DNS_CNAME = 16
DNS_SOA = 32
DNS_PTR = 2048
DNS_HINFO = 4096
DNS_MX = 16384
DNS_TXT = 32768
DNS_SRV = 33554432
DNS_NAPTR = 67108864
DNS_AAAA = 134217728
DNS_A6 = 16777216
DNS_ANY = 268435456
DNS_ALL = 251713587

while there are

http://en.wikipedia.org/wiki/List_of_DNS_record_types

We are missing many.
 [2013-07-26 23:20 UTC] yohgaki@php.net
-Type: Feature/Change Request +Type: Bug
 [2013-07-26 23:20 UTC] yohgaki@php.net
This may be typed as bug.
 [2019-07-15 16:06 UTC] daniil at daniil dot it
Raw mode can be used along with a DNS record parser to fetch DNS records of any type.
I've just created a small lib that does just this, if anyone's interested: https://github.com/danog/LibDNSNative
 [2021-08-30 14:37 UTC] cmb@php.net
-Type: Bug +Type: Feature/Change Request
 [2021-08-30 14:37 UTC] cmb@php.net
> Raw mode can be used along with a DNS record parser to fetch DNS
> records of any type.

Indeed.  So changing back to feature request.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Nov 22 12:01:29 2024 UTC