首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解码Netbios名称Python

解码Netbios名称Python
EN

Stack Overflow用户
提问于 2012-12-01 04:02:43
回答 1查看 3K关注 0票数 0

我想知道与这篇文章相反的最好方法是什么:encode Netbios name python

因此,要进行编码,您可以使用以下代码:

代码语言:javascript
复制
encoded_name = ''.join([chr((ord(c)>>4) + ord('A'))
               + chr((ord(c)&0xF) + ord('A')) for c in original_name])

但是要解码它,例如:

代码语言:javascript
复制
Netbios_Name= "\x46\x45\x45\x46\x46\x44\x45\x45\x46\x45\x45\x45\x45\x45\x46\x44\x46\x44\x46\x44\x43\x41\x43\x41\x43\x41\x43\x41\x43\x41\x43\x41"
## When correctly reversed, Netbios_Name should output in ASCII : "TESDTDDSSS"

我想了想这个函数的反面,但我不明白为什么它不能工作。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-12-01 04:52:24

使用此函数(取自dpkt source code):

代码语言:javascript
复制
def decode_name(nbname):
    """Return the NetBIOS first-level decoded nbname."""
    if len(nbname) != 32:
        return nbname
    l = []
    for i in range(0, 32, 2):
        l.append(chr(((ord(nbname[i]) - 0x41) << 4) |
                     ((ord(nbname[i+1]) - 0x41) & 0xf)))
    return ''.join(l).split('\x00', 1)[0]

所以:

代码语言:javascript
复制
>> decode_name(Netbios_Name).strip()
'TESDTDDSSS'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13652319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档