【发布时间】:2014-01-11 07:06:49
【问题描述】:
所以我有这个代码 sn-p,来自朋友:
my $dnspacket = new Net::DNS::Packet($str, "A", "IN");
my $dnsdata = $dnspacket->data;
my $sock = new Net::RawIP({udp=>{}});
$str = @name[int rand($names)];
$reflector = $nameservers[int rand($reflectors)];
$sock->set({ip => {
saddr => "127.0.0.1", daddr => "$r", frag_off=>0,tos=>0,id=>1565},
udp => {source => 53,
dest => 53, data=>$dnsdata
} });
$sock->send;
基本上我想做的不是发送 $dnsdata 作为数据包中的数据,而是发送十六进制数据 /x53/x41/x4d/x50/x25/xdd/xaf/xd3/x61/x1e /x63
我该怎么做呢?谢谢!
【问题讨论】:
-
可能是十六进制字符条例
my $encoded = join('', map{sprintf('/x%02x', ord $_)} split('', $dnsdata))。但是你真的需要一个规范,或者至少一些关于数据应该如何编码的例子。