有没有办法将运输层协议名称与数字映射?

时间:2016-04-26 02:18:21

标签: python networking network-programming tcp-ip

传输层上的Internet协议(如tcp / udp / icmp)应该有唯一的编号来标识它们。就像tcp是6,icmp是1.就像维基说的那样

https://en.wikipedia.org/wiki/List_of_IP_protocol_numbers

是否有任何型号或包可用于映射协议名称和号码?

例如:

import the_model

# below code should return 6
the_model.func('tcp')

你能告诉我一些可以像上面的“the_model”那样做同样的事情吗?

1 个答案:

答案 0 :(得分:1)

您可能正在寻找socket.getprotobyname

>>> import socket
>>> socket.getprotobyname('tcp')
6
>>> socket.getprotobyname('udp')
17
>>> socket.getprotobyname('icmp')
1