免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2147 | 回复: 4
打印 上一主题 下一主题

如何将接受到的既有16进制也有10进制的消息原样输出 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-04 16:49 |只看该作者 |倒序浏览
在起SNMP接受消息的时候收到的一串消息中,前57个字节是16进制,后70个字节是10进制,现在我输出的时候前面的57个字节就成了乱码,但是后面的10进制能够正确输出,怎样能够将前面的57个字节按照16进制格式输出??


  1. #!/usr/bin/suidperl
  2. use strict;
  3. use IO::Handle;
  4. use BER;
  5. use Socket;
  6. require 'SNMP_Session.pm';

  7. $BER::pretty_print_timeticks = 0;

  8. my $trap_session = SNMPv1_Session->open_trap_session() or die "cannot open trap session";

  9. while(1){
  10.         my($trap,$sender_addr,$sender_port) = $trap_session->receive_trap() or die "cannot receive trap";
  11.         my($community, $enterprise, $agent,$generic, $specific, $sysUptime, $bindings) = $trap_session->decode_trap_request($trap) or die "cannot decode trap received";
  12.         my $binding;
  13.         my $oid;
  14.         my $value;

  15.         while ($bindings ne '') {
  16.                 ($binding,$bindings) = &decode_sequence ($bindings);
  17.                 ($oid, $value) = decode_by_template ($binding, "%O%@");
  18.                  
  19.           my $oidname=$OidName{BER::pretty_oid($oid)};
  20.           my $oidvalue=pretty_print ($value);
  21.           
  22.           print BER::pretty_oid($oid),"=",$oidvalue,"\n";
  23.    
  24.          }

  25. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2007-06-04 18:18 |只看该作者
怎么看的人多,回帖的人少啊

求职 : 网络信息安全
论坛徽章:
0
3 [报告]
发表于 2007-06-04 21:48 |只看该作者
呵呵,
  1. unpack("L*",pack("H*",$hexdata));
复制代码
自己转化一下,57字节?

论坛徽章:
0
4 [报告]
发表于 2007-06-07 17:59 |只看该作者
问题解决,可先用ord将前面的16进制专成10进制,再用hex将10进制专成16进制就可以了

论坛徽章:
0
5 [报告]
发表于 2007-06-08 09:55 |只看该作者
57个字节不知道里面存的啥子哟?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP