Eu tenho o seguinte fluxo tcpdump:
Current:
07:36:03.848461 IP 172.17.3.41.33101 > 172.17.3.43.17408: UDP, length 44
07:36:03.848463 IP 172.17.3.42.33101 > 172.17.3.43.17409: UDP, length 44
07:36:03.848467 IP SYSTEM-A.33101 > 172.17.3.43.17418: UDP, length 45
07:36:03.848467 IP SYSTEM-B.33101 > 172.17.3.43.17419: UDP, length 45
Os números de porta estão em decimal. Como posso canalizá-lo para sed ou awk para modificar o fluxo para que seja o mesmo fluxo com os números de porta alterados para hexadecimal:
Expected:
07:36:03.848461 IP 172.17.3.41.814d > 172.17.3.43.4400: UDP, length 44
07:36:03.848463 IP 172.17.3.42.814d > 172.17.3.43.4401: UDP, length 44
07:36:03.848467 IP SYSTEM-A.814d > 172.17.3.43.440a: UDP, length 45
07:36:03.848467 IP SYSTEM-B.814d > 172.17.3.43.440b: UDP, length 45
Se eu tiver o número da porta, uso isso para convertê-lo em hexadecimal:
echo 33101 | sed -e 's/.*://' | xargs printf "%x\n"
814d
Eu tenho tentado resolver isso, mas sem sorte. Como posso substituir os números de porta após a última ocorrência de '.'
na terceira e quinta coluna do fluxo e, em seguida, alterá-lo para hexadecimal em tempo real?