Scapy is another library where they redefined / to layer packets, such that you can write:
IP(dst="172.23.34.45") / UDP() / DNS(…)
Then Scapy has magic so that on serialisation, the UDP layer knows defaults to dport=53 if the upper layer is DNS, and it can access the lower layer to compute its checksum.
And don’t forget that strings have a custom % (as in modulo) operator for formatting:
"Hello %s"%(username)
Of course in modern Python, f-strings will almost always be more convenient
Scapy is another library where they redefined
/
to layer packets, such that you can write:IP(dst="172.23.34.45") / UDP() / DNS(…)
Then Scapy has magic so that on serialisation, the UDP layer knows defaults to dport=53 if the upper layer is DNS, and it can access the lower layer to compute its checksum.
And don’t forget that strings have a custom
%
(as in modulo) operator for formatting:"Hello %s" %(username)
Of course in modern Python, f-strings will almost always be more convenient