String 如何将整数转换为不带0x的十六进制字符串(Julia 1.0)

String 如何将整数转换为不带0x的十六进制字符串(Julia 1.0),string,hex,julia,pcap,String,Hex,Julia,Pcap,我有一个问题,我想解码pcap记录的MAC地址,并从UInt8数组将其表示为4c:76:25:e9:78:42 数组看起来像这样,它是pcap记录的一部分 UInt8[0x4c、0x76、0x25、0xe9、0x78、0x42、0xe0、0x0e、0xda、0x58…0x3c、0xb6、0x47、0x00、0x00、0x00、0xe6、0x5a、0xa0、0x29] 其他人创建用于Julia 0.6.4的逻辑不再适用于Julia 1.0 下面是该项目的一些代码 数据 julia>cap=Pca

我有一个问题,我想解码pcap记录的MAC地址,并从
UInt8
数组将其表示为4c:76:25:e9:78:42

数组看起来像这样,它是pcap记录的一部分

UInt8[0x4c、0x76、0x25、0xe9、0x78、0x42、0xe0、0x0e、0xda、0x58…0x3c、0xb6、0x47、0x00、0x00、0x00、0xe6、0x5a、0xa0、0x29]
其他人创建用于Julia 0.6.4的逻辑不再适用于Julia 1.0

下面是该项目的一些代码

数据

julia>cap=PcapOffline(“C:/users/XXX/desktop/31072018\u 1800\u 2000\u IMSI\u xxxxxxxxxxxxx.pcap”)
PcapOffline(“C:/users/XXX/desktop/31072018_1800_2000_IMSI_xxxxxxxxxxxxx.pcap”,IOStream(),PcapFileHeader(0xa1b23c4d,0x0002,0x0004,0,0x00000000,0x00000800,0x00000001),PcapRec(0x00000000,0x00000000,0x00000000,0x00000000,UInt8[]),true)
julia>rec=pcap\u get\u记录(cap)
PcapRec(0x5b60a3a1、0x1acb91ba、0x00000082、0x00000082、UInt8[0x4c、0x76、0x25、0xe9、0x78、0x42、0xe0、0x0e、0xda、0x58…0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、0xa5、0x54、0x83])
julia>layers=decode\u pkt(rec.payload)
DecPkt(EthHdr(“76:118:37:233:120:66”,“224:14:218:88:219:223”,0x0800),IpHdr(0x04,0x14,0xba,0x0070,0x0000,IpFlags(false,true,false),0x0000,0xf8,0x84,true,“0.0.0.0”,“0.0.0”),无任何内容)
这是执行decode_pkt的旧代码

函数解码(d::数组{UInt8}) eh=EthHdr() eh.dest_mac=string(十六进制(d[1],2),“:”,十六进制(d[2],2),“:”,十六进制(d[3],2), “:”,十六进制(d[4],2),“:”,十六进制(d[5],2),“:”,十六进制(d[6],2)) eh.src_mac=string(十六进制(d[7],2),“:”,十六进制(d[8],2),“:”,十六进制(d[9],2), “:”,十六进制(d[10],2),“:”,十六进制(d[11],2),“:”,十六进制(d[12],2)) eh.ptype=getindex_be(UInt16,d,13) 嗯 结束
谢谢

据我所知,
hex
在juliav0.7.0中被弃用,然后在juliav1.0.0中被淘汰

您可以通过借用Julia v0.7.0弃用消息来定义它

hex(n,pad)=字符串(n,base=16,pad=pad)
如果你想变得“完整”,也可以添加非填充版本

hex(n) = string(n, base = 16)

通过对@rickhg12hs的函数稍加修改,您可以编写(IMHO)看起来更像朱利安的代码:

hex(n)=字符串(n,基=16,垫=2)
函数解码(d::数组{UInt8})
# ...
eh.dest_mac=join(hex.(d[1:6]),“:”)#将hex应用于前6个元素,并将结果与“:”连接起来
eh.src_mac=join(hex.(d[7:12]),“:”)#对接下来的6个元素执行此操作
# ...
你也可以这样写:

eh.src_mac=d[7:12]。|>hex |>x->join(x,“:”)

我现在无法测试它,但是如果你定义了
十六进制(n,pad)=字符串(n,base=16,pad=pad)
,那么它对你有用吗?这很有用!谢谢