我想知道与这篇文章相反的最好方法是什么:encode Netbios name python
因此,要进行编码,您可以使用以下代码:
encoded_name = ''.join([chr((ord(c)>>4) + ord('A'))
+ chr((ord(c)&0xF) + ord('A')) for c in original_name])但是要解码它,例如:
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"我想了想这个函数的反面,但我不明白为什么它不能工作。
谢谢!
发布于 2012-12-01 04:52:24
使用此函数(取自dpkt source code):
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]所以:
>> decode_name(Netbios_Name).strip()
'TESDTDDSSS'https://stackoverflow.com/questions/13652319
复制相似问题