【问题标题】:How to read truncated data in telnetlib如何在 telnetlib 中读取截断的数据
【发布时间】:2017-11-13 21:09:45
【问题描述】:

我使用wireshark 捕获了telnet 数据包。在分析捕获的数据包时,我得到的数据部分是,

Data [truncated]: 17:46:26......****....

我的问题是,现在我通过 python 中的 telnetlib 启动 telnet 连接。通过它我发送和接收数据。但有时在接收数据时,它会被截断,如上图所示。那么,是否可以以编程方式读取那些截断的数据。

【问题讨论】:

    标签: python telnet wireshark telnetlib


    【解决方案1】:

    您可以尝试在禁用 telnet 解析器的情况下使用tshark 吗?例如,在实时捕获时,您可以使用如下内容:

    tshark -i foo --disable-protocol telnet -f "tcp port 23" -Y "tcp.len > 0" -T fields -e frame.number -e data
    

    这将捕获所有 telnet 流量,但将仅显示那些实际包含数据的数据包的帧号和数据字段。它要求您禁用 telnet 解析器以使其工作。请注意,我使用--disable-protocol 命令行选项来禁用telnet,但如果您运行的是旧版本的tshark,它没有此选项,那么您在运行tshark 之前,必须先通过“分析 -> 启用的协议... -> 协议:Telnet” 禁用 Wireshark 中的 telnet 解析器。

    这是一个类似的例子,但这次tshark 是从文件中读取数据包而不是实时捕获它们:

    tshark -r foo.pcap --disable-protocol telnet -Y "tcp.port eq 23 and tcp.len > 0" -T fields -e frame.number -e data
    

    如果您愿意,您还可以更改数据的输出格式以在字节之间包含冒号分隔符 (':'),如下所示:

    tshark -r foo.pcap --disable-protocol telnet -Y "tcp.port eq 23 and tcp.len > 0" -T fields -e frame.number -e data.data
    

    您可以使用tshark-e 选项指定任意数量的字段。有关tshark 及其各种选项的更多信息,请参阅tshark man page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-12
      • 2013-08-26
      • 1970-01-01
      • 2011-08-27
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多