1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 04:31:29 +00:00

Support names for all IP protocols in libnetutil. See #841

This commit is contained in:
dmiller
2019-05-22 16:40:49 +00:00
parent ab79382f93
commit 57ff460847

View File

@@ -1867,190 +1867,162 @@ char *nexthdrtoa(u8 nextheader, int acronym){
static char buffer[129];
memset(buffer, 0, 129);
#define HDRTOA(num, short_name, long_name) \
case num: \
strncpy(buffer, acronym ? short_name : long_name, 128);\
break;
switch(nextheader){
case 0:
if(acronym)
strncpy(buffer, "HOPOPT", 128);
else
strncpy(buffer, "IPv6 Hop-by-Hop Option", 128);
break;
case 1:
if(acronym)
strncpy(buffer, "ICMP", 128);
else
strncpy(buffer, "Internet Control Message", 128);
break;
case 2:
if(acronym)
strncpy(buffer, "IGMP", 128);
else
strncpy(buffer, "Internet Group Management", 128);
break;
case 4:
if(acronym)
strncpy(buffer, "IP", 128);
else
strncpy(buffer, "IP in IP (encapsulation)", 128);
break;
case 6:
if(acronym)
strncpy(buffer, "TCP", 128);
else
strncpy(buffer, "Transmission Control Protocol", 128);
break;
case 8:
if(acronym)
strncpy(buffer, "EGP", 128);
else
strncpy(buffer, "Exterior Gateway Protocol", 128);
break;
case 9:
if(acronym)
strncpy(buffer, "IGP", 128);
else
strncpy(buffer, "Interior Gateway Protocol", 128);
break;
case 17:
if(acronym)
strncpy(buffer, "UDP", 128);
else
strncpy(buffer, "User Datagram", 128);
break;
case 41:
if(acronym)
strncpy(buffer, "IPv6", 128);
else
strncpy(buffer, "Internet Protocol version 6", 128);
break;
case 43:
if(acronym)
strncpy(buffer, "IPv6-Route", 128);
else
strncpy(buffer, "Routing Header for IPv6", 128);
break;
case 44:
if(acronym)
strncpy(buffer, "IPv6-Frag", 128);
else
strncpy(buffer, "Fragment Header for IPv6", 128);
break;
case 50:
if(acronym)
strncpy(buffer, "ESP", 128);
else
strncpy(buffer, "Encap Security Payload", 128);
break;
case 51:
if(acronym)
strncpy(buffer, "AH", 128);
else
strncpy(buffer, "Authentication Header", 128);
break;
case 55:
if(acronym)
strncpy(buffer, "MOBILE", 128);
else
strncpy(buffer, "IP Mobility", 128);
break;
case 58:
if(acronym)
strncpy(buffer, "IPv6-ICMP", 128);
else
strncpy(buffer, "ICMP for IPv6", 128);
break;
case 59:
if(acronym)
strncpy(buffer, "IPv6-NoNxt", 128);
else
strncpy(buffer, "No Next Header for IPv6", 128);
break;
case 60:
if(acronym)
strncpy(buffer, "IPv6-Opts", 128);
else
strncpy(buffer, "Destination Options for IPv6", 128);
break;
case 70:
if(acronym)
strncpy(buffer, "VISA", 128);
else
strncpy(buffer, "VISA Protocol", 128);
break;
case 88:
if(acronym)
strncpy(buffer, "EIGRP", 128);
else
strncpy(buffer, "Enhanced Interior Gateway Routing Protocol ", 128);
break;
case 94:
if(acronym)
strncpy(buffer, "IPIP", 128);
else
strncpy(buffer, "IP-within-IP Encapsulation Protocol", 128);
break;
case 132:
if(acronym)
strncpy(buffer, "SCTP", 128);
else
strncpy(buffer, "Stream Control Transmission Protocol", 128);
break;
case 133:
if(acronym)
strncpy(buffer, "FC", 128);
else
strncpy(buffer, "Fibre Channel", 128);
break;
case 135:
if(acronym)
strncpy(buffer, "MH", 128);
else
strncpy(buffer, "Mobility Header", 128);
/* Generate these lines from nmap-protocols using the following perl command:
perl -lne'if(/^(\S+)\s*(\d+)\s*\#?\s*(.*)/){my$l=$3||$1;print qq{HDRTOA($2, "$1", "$l")}}'
*/
HDRTOA(0, "hopopt", "IPv6 Hop-by-Hop Option")
HDRTOA(1, "icmp", "Internet Control Message")
HDRTOA(2, "igmp", "Internet Group Management")
HDRTOA(3, "ggp", "Gateway-to-Gateway")
HDRTOA(4, "ipv4", "IP in IP (encapsulation)")
HDRTOA(5, "st", "Stream")
HDRTOA(6, "tcp", "Transmission Control")
HDRTOA(7, "cbt", "CBT")
HDRTOA(8, "egp", "Exterior Gateway Protocol")
HDRTOA(9, "igp", "any private interior gateway")
HDRTOA(10, "bbn-rcc-mon", "BBN RCC Monitoring")
HDRTOA(11, "nvp-ii", "Network Voice Protocol")
HDRTOA(12, "pup", "PARC universal packet protocol")
HDRTOA(13, "argus", "ARGUS")
HDRTOA(14, "emcon", "EMCON")
HDRTOA(15, "xnet", "Cross Net Debugger")
HDRTOA(16, "chaos", "Chaos")
HDRTOA(17, "udp", "User Datagram")
HDRTOA(18, "mux", "Multiplexing")
HDRTOA(19, "dcn-meas", "DCN Measurement Subsystems")
HDRTOA(20, "hmp", "Host Monitoring")
HDRTOA(21, "prm", "Packet Radio Measurement")
HDRTOA(22, "xns-idp", "XEROX NS IDP")
HDRTOA(23, "trunk-1", "Trunk-1")
HDRTOA(24, "trunk-2", "Trunk-2")
HDRTOA(25, "leaf-1", "Leaf-1")
HDRTOA(26, "leaf-2", "Leaf-2")
HDRTOA(27, "rdp", "Reliable Data Protocol")
HDRTOA(28, "irtp", "Internet Reliable Transaction")
HDRTOA(29, "iso-tp4", "ISO Transport Protocol Class 4")
HDRTOA(30, "netblt", "Bulk Data Transfer Protocol")
HDRTOA(31, "mfe-nsp", "MFE Network Services Protocol")
HDRTOA(32, "merit-inp", "MERIT Internodal Protocol")
HDRTOA(33, "dccp", "Datagram Congestion Control Protocol")
HDRTOA(34, "3pc", "Third Party Connect Protocol")
HDRTOA(35, "idpr", "Inter-Domain Policy Routing Protocol")
HDRTOA(36, "xtp", "XTP")
HDRTOA(37, "ddp", "Datagram Delivery Protocol")
HDRTOA(38, "idpr-cmtp", "IDPR Control Message Transport Proto")
HDRTOA(39, "tp++", "TP+")
HDRTOA(40, "il", "IL Transport Protocol")
HDRTOA(41, "ipv6", "Ipv6")
HDRTOA(42, "sdrp", "Source Demand Routing Protocol")
HDRTOA(43, "ipv6-route", "Routing Header for IPv6")
HDRTOA(44, "ipv6-frag", "Fragment Header for IPv6")
HDRTOA(45, "idrp", "Inter-Domain Routing Protocol")
HDRTOA(46, "rsvp", "Reservation Protocol")
HDRTOA(47, "gre", "General Routing Encapsulation")
HDRTOA(48, "dsp", "Dynamic Source Routing Protocol. Historically MHRP")
HDRTOA(49, "bna", "BNA")
HDRTOA(50, "esp", "Encap Security Payload")
HDRTOA(51, "ah", "Authentication Header")
HDRTOA(52, "i-nlsp", "Integrated Net Layer Security TUBA")
HDRTOA(53, "swipe", "IP with Encryption")
HDRTOA(54, "narp", "NBMA Address Resolution Protocol")
HDRTOA(55, "mobile", "IP Mobility")
HDRTOA(56, "tlsp", "Transport Layer Security Protocol using Kryptonet key management")
HDRTOA(57, "skip", "SKIP")
HDRTOA(58, "ipv6-icmp", "ICMP for IPv6")
HDRTOA(59, "ipv6-nonxt", "No Next Header for IPv6")
HDRTOA(60, "ipv6-opts", "Destination Options for IPv6")
HDRTOA(61, "anyhost", "any host internal protocol")
HDRTOA(62, "cftp", "CFTP")
HDRTOA(63, "anylocalnet", "any local network")
HDRTOA(64, "sat-expak", "SATNET and Backroom EXPAK")
HDRTOA(65, "kryptolan", "Kryptolan")
HDRTOA(66, "rvd", "MIT Remote Virtual Disk Protocol")
HDRTOA(67, "ippc", "Internet Pluribus Packet Core")
HDRTOA(68, "anydistribfs", "any distributed file system")
HDRTOA(69, "sat-mon", "SATNET Monitoring")
HDRTOA(70, "visa", "VISA Protocol")
HDRTOA(71, "ipcv", "Internet Packet Core Utility")
HDRTOA(72, "cpnx", "Computer Protocol Network Executive")
HDRTOA(73, "cphb", "Computer Protocol Heart Beat")
HDRTOA(74, "wsn", "Wang Span Network")
HDRTOA(75, "pvp", "Packet Video Protocol")
HDRTOA(76, "br-sat-mon", "Backroom SATNET Monitoring")
HDRTOA(77, "sun-nd", "SUN ND PROTOCOL-Temporary")
HDRTOA(78, "wb-mon", "WIDEBAND Monitoring")
HDRTOA(79, "wb-expak", "WIDEBAND EXPAK")
HDRTOA(80, "iso-ip", "ISO Internet Protocol")
HDRTOA(81, "vmtp", "VMTP")
HDRTOA(82, "secure-vmtp", "SECURE-VMTP")
HDRTOA(83, "vines", "VINES")
HDRTOA(84, "iptm", "Internet Protocol Traffic Manager. Historically TTP")
HDRTOA(85, "nsfnet-igp", "NSFNET-IGP")
HDRTOA(86, "dgp", "Dissimilar Gateway Protocol")
HDRTOA(87, "tcf", "TCF")
HDRTOA(88, "eigrp", "EIGRP")
HDRTOA(89, "ospfigp", "OSPFIGP")
HDRTOA(90, "sprite-rpc", "Sprite RPC Protocol")
HDRTOA(91, "larp", "Locus Address Resolution Protocol")
HDRTOA(92, "mtp", "Multicast Transport Protocol")
HDRTOA(93, "ax.25", "AX.")
HDRTOA(94, "ipip", "IP-within-IP Encapsulation Protocol")
HDRTOA(95, "micp", "Mobile Internetworking Control Pro.")
HDRTOA(96, "scc-sp", "Semaphore Communications Sec.")
HDRTOA(97, "etherip", "Ethernet-within-IP Encapsulation")
HDRTOA(98, "encap", "Encapsulation Header")
HDRTOA(99, "anyencrypt", "any private encryption scheme")
HDRTOA(100, "gmtp", "GMTP")
HDRTOA(101, "ifmp", "Ipsilon Flow Management Protocol")
HDRTOA(102, "pnni", "PNNI over IP")
HDRTOA(103, "pim", "Protocol Independent Multicayst")
HDRTOA(104, "aris", "ARIS")
HDRTOA(105, "scps", "SCPS")
HDRTOA(106, "qnx", "QNX")
HDRTOA(107, "a/n", "Active Networks")
HDRTOA(108, "ipcomp", "IP Payload Compression Protocol")
HDRTOA(109, "snp", "Sitara Networks Protocol")
HDRTOA(110, "compaq-peer", "Compaq Peer Protocol")
HDRTOA(111, "ipx-in-ip", "IPX in IP")
HDRTOA(112, "vrrp", "Virtual Router Redundancy Protocol")
HDRTOA(113, "pgm", "PGM Reliable Transport Protocol")
HDRTOA(114, "any0hop", "any 0-hop protocol")
HDRTOA(115, "l2tp", "Layer Two Tunneling Protocol")
HDRTOA(116, "ddx", "D-II Data Exchange (")
HDRTOA(117, "iatp", "Interactive Agent Transfer Protocol")
HDRTOA(118, "stp", "Schedule Transfer Protocol")
HDRTOA(119, "srp", "SpectraLink Radio Protocol")
HDRTOA(120, "uti", "UTI")
HDRTOA(121, "smp", "Simple Message Protocol")
HDRTOA(122, "sm", "Simple Multicast Protocol")
HDRTOA(123, "ptp", "Performance Transparency Protocol")
HDRTOA(124, "isis-ipv4", "ISIS over IPv4")
HDRTOA(125, "fire", "fire")
HDRTOA(126, "crtp", "Combat Radio Transport Protocol")
HDRTOA(127, "crudp", "Combat Radio User Datagram")
HDRTOA(128, "sscopmce", "sscopmce")
HDRTOA(129, "iplt", "iplt")
HDRTOA(130, "sps", "Secure Packet Shield")
HDRTOA(131, "pipe", "Private IP Encapsulation within IP")
HDRTOA(132, "sctp", "Stream Control Transmission Protocol")
HDRTOA(133, "fc", "Fibre Channel")
HDRTOA(134, "rsvp-e2e-ignore", "rsvp-e2e-ignore")
HDRTOA(135, "mobility-hdr", "Mobility Header")
HDRTOA(136, "udplite", "UDP-Lite [RFC3828]")
HDRTOA(137, "mpls-in-ip", "MPLS-in-IP [RFC4023]")
HDRTOA(138, "manet", "MANET Protocols [RFC5498]")
HDRTOA(139, "hip", "Host Identity Protocol")
HDRTOA(140, "shim6", "Shim6 Protocol [RFC5533]")
HDRTOA(141, "wesp", "Wrapped Encapsulating Security Payload")
HDRTOA(142, "rohc", "Robust Header Compression")
HDRTOA(253, "experimental1", "Use for experimentation and testing")
HDRTOA(254, "experimental2", "Use for experimentation and testing")
default:
strncpy(buffer, acronym ? "unknown" : "Unknown protocol", 128);\
break;
} /* End of switch */