That won't work for www.some.domain.com. Use a loop.
my $QNAME= "www.google.com"; my $QNAME_packed = ''; for my $part ( split( /\./, $QNAME ) ) { $QNAME_packed .= pack( 'C', length($part) ) . $part; } $QNAME_packed .= pack('C', 0)
Or
my $QNAME= "www.google.com"; my $QNAME_packed = ''; for my $part ( split( /\./, $QNAME ) ) { $QNAME_packed .= pack( 'C/a*', $part ); } $QNAME_packed .= pack('C', 0)
Or
my $QNAME= "www.google.com"; my $QNAME_packed = ''; for my $part ( split( /\./, $QNAME ), '' ) { $QNAME_packed .= pack( 'C/a*', $part ); }
Or if requiring Perl 5.8 is acceptable
my $QNAME= "www.google.com"; my $QNAME_packed = pack( '(C/a*)*', split( /\./, $QNAME ), '' ) );
In reply to Re^5: How to create a DNS message in perl?
by ikegami
in thread How to create a DNS message in perl?
by sanjay nayak
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |