ものとしては非常になんともないけど、たまにむしょうに欲しくなるツール。
単に入力行を読んで%XXをみたら16進変換するだけ。
出力はout.tmpに出されるのでtail -fで読むっす。
参考までに
LF | 0x0A |
CR | 0x0D |
% | 0x25 |
#!/usr/bin/perl
#belnet host port
#using "output.tmp" for output
#STDIN is used only for sending message (printf format)
use IO::Socket;
($host,$port)=@ARGV;
open OUT,">output.tmp" or die("");
$sock = IO::Socket::INET->new(PeerAddr => $host,PeerPort => $port,Proto=> 'tcp',);
print STDERR "CONNECTED\n";
select OUT;
$|=1;
select $sock;
$|=1;
select STDOUT;
$|=1;
if(fork()){
while(<STDIN>){
chomp();
s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
print $sock $_;
}
}else{
while(sysread($sock,$_,1)){
print OUT $_;
}
print STDERR "WRITE END\n";
}
0 件のコメント:
コメントを投稿