'how to turn protocol number to name with python?
the protocol like tcp and udp is all represented by a number.
import socket
socket.getprotocobyname('tcp')
the above code will return 6.
How I can get the protocol name if I know the protocol number?
Solution 1:[1]
I'm going to say there is almost definitely a better way then this, but all the protocol names (and values) are stored as constants prefixed by "IPPROTO_"
so you can create a lookup table by iterating over the values in the module:
import socket
prefix = "IPPROTO_"
table = {num:name[len(prefix):]
for name,num in vars(socket).items()
if name.startswith(prefix)}
assert table[6] == 'TCP'
assert table[0x11] == 'UDP'
print(len(table)) # in python 3.10.0 this has 30 entries
from pprint import pprint
pprint(table) # if you want to see what is available to you
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |