Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

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\005issueentrust.net" > "CAA IN 0 issue entrust.net" [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\005issueentrust.net" translated to "0,5,issueentrust.net" 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\005issueentrust.net" translated to "0,5,issueentrust.net" ...

    Try:

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

    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\005issueentrust.net}; 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", "entrust.net") '0 issue entrust.net'
    (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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (5)
As of 2020-10-28 15:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (261 votes). Check out past polls.

    Notices?