这对你们大多数人来说可能是一个愚蠢的问题,但我正面临这个问题;
我正在用 scapy 在网络上捕获一个 mac 地址,我通过这种方式将这个 mac 地址转换为 "\x00\x21\x23\x24\x25":
...
b = p.sprintf("%Dot11.addr2%")
print "Sending to this MAC Address",b
#Here, the mac address looks like 00:00:00:00:00:00
dstmac = str('\\x'+b.replace(':','\\x'))
#Now, the mac address looks like this:
"\x00\x00\x00\x00\x00\x00"
sendp(dst=dstmac,blablablabla)
...
当此脚本通过网络发送 mac 时,它会发送以十六进制编码的实际\x(以及所有后续数字),而不是发送 00 00 00 00 00 00。
通常,你可以这样使用它,它很好:"sendp(dst="\x00\x00\x00\x00\x00\x00",blablablabla)
我认为我在进行此字符串操作或编码时做错了什么。
对此的任何输入都会有所帮助!
谢谢!
最佳答案
\x
符号用于字符串文字。而是将字符串解码为十六进制。
>>> '123456789abc'.decode('hex')
'\x124Vx\x9a\xbc'
关于python - 字符串到二进制python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401750/