Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

tinyDNS deconstruct.

by 0xdeadbad (Novice)
on Feb 15, 2018 at 17:40 UTC ( #1209245=perlquestion: print w/replies, xml ) Need Help??

0xdeadbad has asked for the wisdom of the Perl Monks concerning the following question:

Could somebody lend a hand with deconstructing tinydns CAA records please.

"\000\" > "CAA IN 0 issue" [flag] [tag] [issuer]

The first octal is the Flag ( 000 )
The second octal ( 005 ) is the taglength and used to deduce the tag and issuer from the ascii string.

If I could just get "\000\" translated to "0,5," that would be a great help. I've been looking at pack and unpack but cannot work it out as I'm not a real programmer.

many thanks

Replies are listed 'Best First'.
Re: tinyDNS deconstruct.
by AnomalousMonk (Bishop) on Feb 15, 2018 at 17:50 UTC
    ... just get "\000\" translated to "0,5," ...


    c:\@Work\Perl\monks>perl -wMstrict -le "my $s = qq{\000\}; $s =~ s{ \A (.) (.) }{ sprintf '%d,%d,', ord($1), ord($2) }xmse; print qq{'$s'}; " '0,5,'

    Update 1: But this sounds like an XY Problem; it that really all you want?

    Update 2: Here's an unpack approach:

    c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my $s = qq{\000\}; my ($flag, $tag, $issuer) = unpack 'C C/a a*', $s; dd $flag, $tag, $issuer; my $t = sprintf '%-6s %s %s', $flag, $tag, $issuer; print qq{'$t'}; " (0, "issue", "") '0 issue'
    (Update: Changed  $remainder to  $issuer in this code example because this naming corresponds better to terminology used in the OP.)

    Give a man a fish:  <%-{-{-{-<

      Great,many thanks. Your unpack template was just what I needed.
Re: tinyDNS deconstruct.
by atcroft (Abbot) on Feb 15, 2018 at 19:45 UTC

    I know you may have your reasons for looking at the record in a particular way, but why not use a module that is made for doing this, Net::DNS?

    Below was a quick example of using Net::DNS to retrieve similar information:

    Hope that helps.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1209245]
Approved by herveus
Front-paged by haukex
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2020-10-21 14:06 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (217 votes). Check out past polls.