如何从linux / cygwin控制台运行Thales“NC”诊断主机命令

时间:2013-07-10 22:19:41

标签: linux cygwin hsm

我想直接从linux / cygwin控制台运行Thales NC(执行诊断)主机命令。

如何做到这一点?

1 个答案:

答案 0 :(得分:3)

假设您安装了 xxd nc (netcat),您可以执行以下操作:

$ echo '0006303030304e43' | xxd -r -p | nc localhost 9998
!0000ND007B44AC1DDEE2A94B0007-E000

命令 0006303030304e43 细分如下:

  • 0006 =十六进制的命令长度(即 0000NC 的长度)
  • 30303030 =十六进制的 0000 4字节标题
  • 4e43 = 2字节命令 NC (十六进制)

!0000ND007B44AC1DDEE2A94B0007-E000 - 这是来自HSM的回复。


如果您没有 xxd ,则可以使用 Perl

echo '0006303030304e43' | perl -e 'print pack "H*", <STDIN>' | nc localhost 9998

更新1:更简单的解决方案:

echo -ne '\x00\x06\x30\x30\x30\x30\x4e\x43' | nc localhost 9998

更新2:纯粹的perl解决方案:

perl -e 'use IO::Socket::INET; 
my $sock = new IO::Socket::INET(PeerAddr=>"localhost:9998") or die; 
$sock->send(pack "H*","0006303030304e43"); 
$sock->recv($data, 1024); print $data;'

(只需复制并粘贴到你的bash提示符中)