mirror of
https://github.com/safing/portmaster
synced 2025-09-01 10:09:11 +00:00
45 lines
819 B
Go
45 lines
819 B
Go
package reference
|
|
|
|
import "strconv"
|
|
|
|
var (
|
|
protocolNames = map[uint8]string{
|
|
1: "ICMP",
|
|
2: "IGMP",
|
|
6: "TCP",
|
|
17: "UDP",
|
|
27: "RDP",
|
|
58: "ICMPv6",
|
|
33: "DCCP",
|
|
136: "UDPLite",
|
|
}
|
|
|
|
protocolNumbers = map[string]uint8{
|
|
"ICMP": 1,
|
|
"IGMP": 2,
|
|
"TCP": 6,
|
|
"UDP": 17,
|
|
"RDP": 27,
|
|
"DCCP": 33,
|
|
"ICMPv6": 58,
|
|
"UDPLite": 136,
|
|
}
|
|
)
|
|
|
|
// GetProtocolName returns the name of a IP protocol number.
|
|
func GetProtocolName(protocol uint8) (name string) {
|
|
name, ok := protocolNames[protocol]
|
|
if ok {
|
|
return name
|
|
}
|
|
return strconv.Itoa(int(protocol))
|
|
}
|
|
|
|
// GetProtocolNumber returns the number of a IP protocol name.
|
|
func GetProtocolNumber(protocol string) (number uint8, ok bool) {
|
|
number, ok = protocolNumbers[protocol]
|
|
if ok {
|
|
return number, true
|
|
}
|
|
return 0, false
|
|
}
|