我有一个小型服务器,使用 python 中的套接字发送原始数据,该套接字仅接受字节数组作为输入。在这个字节数组中,我必须包含 mac 地址。这些 mac 地址来自 json 文件,作为字符串导入。 例如“00 11 22 33 44 55”(实际上没有空格)
我正在寻找一种将此字符串编码为字节数组的简单方法。所以第一个字节应该是 00,第二个字节是 11,依此类推。
我发现的所有“解决方案”都会将任何字符串编码为字节数组,但这不是我想要的,因为它会进一步分割我的mac地址,因为它们会编码例如0,然后0,然后是 1,然后是 1,依此类推,这样我的 6 字节 MAC 地址就变成了 12 字节编码的字节数组。
是否有我可以使用的内置函数,或者我是否必须创建自己的函数才能执行此操作?
<小时/>解决方案: 感谢大家和 Arnial 提供了最简单的答案。 问题是,所有这些答案我都或多或少地尝试过,但之前没有效果 但是 我的问题不是这些方法的返回类型的类型(我的套接字总是拒绝发送),它实际上是我尝试发送的消息的长度。 套接字拒绝发送短于 12 字节的消息(源/目标 mac 地址),但我只尝试过使用此处介绍的方法之一转换此示例 mac 地址的短消息。
非常感谢大家的帮助!
最佳答案
您的转化并不像您想象的那么字面意思。
字符串“00112233445566”的长度为 12 个字符,这就是它转换为 12 字节数组的原因。
你的mac看起来像十六进制编码的字节字符串,所以你可能可以使用这个:
bytes.fromhex( "001122334455" )
它将创建从零字节开始的字节序列,然后是 0x11 (17),然后是 0x22 (34) ...
关于python - "Literally"将字符串转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38621499/