| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870 |
- // Package netdb provides a Go interface for the protoent and servent
- // structures as defined in netdb.h
- //
- // A pure Go implementation is used by parsing /etc/protocols and
- // /etc/services
- //
- // All return values are pointers that point to the entries in the
- // original list of protocols and services. Manipulating the entries
- // would affect the entire program.
- package netdb // import "modernc.org/libc/honnef.co/go/netdb"
- // Modifications Copyright 2020 The Libc Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- import (
- "io/ioutil"
- "os"
- "strconv"
- "strings"
- )
- const (
- protocols = `
- # Internet (IP) protocols
- #
- # Updated from http://www.iana.org/assignments/protocol-numbers and other
- # sources.
- # New protocols will be added on request if they have been officially
- # assigned by IANA and are not historical.
- # If you need a huge list of used numbers please install the nmap package.
- ip 0 IP # internet protocol, pseudo protocol number
- hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC1883]
- icmp 1 ICMP # internet control message protocol
- igmp 2 IGMP # Internet Group Management
- ggp 3 GGP # gateway-gateway protocol
- ipencap 4 IP-ENCAP # IP encapsulated in IP (officially "IP")
- st 5 ST # ST datagram mode
- tcp 6 TCP # transmission control protocol
- egp 8 EGP # exterior gateway protocol
- igp 9 IGP # any private interior gateway (Cisco)
- pup 12 PUP # PARC universal packet protocol
- udp 17 UDP # user datagram protocol
- hmp 20 HMP # host monitoring protocol
- xns-idp 22 XNS-IDP # Xerox NS IDP
- rdp 27 RDP # "reliable datagram" protocol
- iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4 [RFC905]
- dccp 33 DCCP # Datagram Congestion Control Prot. [RFC4340]
- xtp 36 XTP # Xpress Transfer Protocol
- ddp 37 DDP # Datagram Delivery Protocol
- idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport
- ipv6 41 IPv6 # Internet Protocol, version 6
- ipv6-route 43 IPv6-Route # Routing Header for IPv6
- ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6
- idrp 45 IDRP # Inter-Domain Routing Protocol
- rsvp 46 RSVP # Reservation Protocol
- gre 47 GRE # General Routing Encapsulation
- esp 50 IPSEC-ESP # Encap Security Payload [RFC2406]
- ah 51 IPSEC-AH # Authentication Header [RFC2402]
- skip 57 SKIP # SKIP
- ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6
- ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6
- ipv6-opts 60 IPv6-Opts # Destination Options for IPv6
- rspf 73 RSPF CPHB # Radio Shortest Path First (officially CPHB)
- vmtp 81 VMTP # Versatile Message Transport
- eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco)
- ospf 89 OSPFIGP # Open Shortest Path First IGP
- ax.25 93 AX.25 # AX.25 frames
- ipip 94 IPIP # IP-within-IP Encapsulation Protocol
- etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378]
- encap 98 ENCAP # Yet Another IP encapsulation [RFC1241]
- # 99 # any private encryption scheme
- pim 103 PIM # Protocol Independent Multicast
- ipcomp 108 IPCOMP # IP Payload Compression Protocol
- vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798]
- l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC2661]
- isis 124 ISIS # IS-IS over IPv4
- sctp 132 SCTP # Stream Control Transmission Protocol
- fc 133 FC # Fibre Channel
- mobility-header 135 Mobility-Header # Mobility Support for IPv6 [RFC3775]
- udplite 136 UDPLite # UDP-Lite [RFC3828]
- mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023]
- manet 138 # MANET Protocols [RFC5498]
- hip 139 HIP # Host Identity Protocol
- shim6 140 Shim6 # Shim6 Protocol [RFC5533]
- wesp 141 WESP # Wrapped Encapsulating Security Payload
- rohc 142 ROHC # Robust Header Compression
- `
- services = `
- # Network services, Internet style
- #
- # Note that it is presently the policy of IANA to assign a single well-known
- # port number for both TCP and UDP; hence, officially ports have two entries
- # even if the protocol doesn't support UDP operations.
- #
- # Updated from https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml .
- #
- # New ports will be added on request if they have been officially assigned
- # by IANA and used in the real-world or are needed by a debian package.
- # If you need a huge list of used numbers please install the nmap package.
- tcpmux 1/tcp # TCP port service multiplexer
- echo 7/tcp
- echo 7/udp
- discard 9/tcp sink null
- discard 9/udp sink null
- systat 11/tcp users
- daytime 13/tcp
- daytime 13/udp
- netstat 15/tcp
- qotd 17/tcp quote
- msp 18/tcp # message send protocol
- msp 18/udp
- chargen 19/tcp ttytst source
- chargen 19/udp ttytst source
- ftp-data 20/tcp
- ftp 21/tcp
- fsp 21/udp fspd
- ssh 22/tcp # SSH Remote Login Protocol
- telnet 23/tcp
- smtp 25/tcp mail
- time 37/tcp timserver
- time 37/udp timserver
- rlp 39/udp resource # resource location
- nameserver 42/tcp name # IEN 116
- whois 43/tcp nicname
- tacacs 49/tcp # Login Host Protocol (TACACS)
- tacacs 49/udp
- domain 53/tcp # Domain Name Server
- domain 53/udp
- bootps 67/udp
- bootpc 68/udp
- tftp 69/udp
- gopher 70/tcp # Internet Gopher
- finger 79/tcp
- http 80/tcp www # WorldWideWeb HTTP
- link 87/tcp ttylink
- kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5
- kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5
- iso-tsap 102/tcp tsap # part of ISODE
- acr-nema 104/tcp dicom # Digital Imag. & Comm. 300
- pop3 110/tcp pop-3 # POP version 3
- sunrpc 111/tcp portmapper # RPC 4.0 portmapper
- sunrpc 111/udp portmapper
- auth 113/tcp authentication tap ident
- sftp 115/tcp
- nntp 119/tcp readnews untp # USENET News Transfer Protocol
- ntp 123/udp # Network Time Protocol
- epmap 135/tcp loc-srv # DCE endpoint resolution
- epmap 135/udp loc-srv
- netbios-ns 137/tcp # NETBIOS Name Service
- netbios-ns 137/udp
- netbios-dgm 138/tcp # NETBIOS Datagram Service
- netbios-dgm 138/udp
- netbios-ssn 139/tcp # NETBIOS session service
- netbios-ssn 139/udp
- imap2 143/tcp imap # Interim Mail Access P 2 and 4
- snmp 161/tcp # Simple Net Mgmt Protocol
- snmp 161/udp
- snmp-trap 162/tcp snmptrap # Traps for SNMP
- snmp-trap 162/udp snmptrap
- cmip-man 163/tcp # ISO mgmt over IP (CMOT)
- cmip-man 163/udp
- cmip-agent 164/tcp
- cmip-agent 164/udp
- mailq 174/tcp # Mailer transport queue for Zmailer
- mailq 174/udp
- xdmcp 177/tcp # X Display Mgr. Control Proto
- xdmcp 177/udp
- nextstep 178/tcp NeXTStep NextStep # NeXTStep window
- nextstep 178/udp NeXTStep NextStep # server
- bgp 179/tcp # Border Gateway Protocol
- irc 194/tcp # Internet Relay Chat
- irc 194/udp
- smux 199/tcp # SNMP Unix Multiplexer
- smux 199/udp
- at-rtmp 201/tcp # AppleTalk routing
- at-rtmp 201/udp
- at-nbp 202/tcp # AppleTalk name binding
- at-nbp 202/udp
- at-echo 204/tcp # AppleTalk echo
- at-echo 204/udp
- at-zis 206/tcp # AppleTalk zone information
- at-zis 206/udp
- qmtp 209/tcp # Quick Mail Transfer Protocol
- qmtp 209/udp
- z3950 210/tcp wais # NISO Z39.50 database
- z3950 210/udp wais
- ipx 213/tcp # IPX
- ipx 213/udp
- ptp-event 319/udp
- ptp-general 320/udp
- pawserv 345/tcp # Perf Analysis Workbench
- pawserv 345/udp
- zserv 346/tcp # Zebra server
- zserv 346/udp
- fatserv 347/tcp # Fatmen Server
- fatserv 347/udp
- rpc2portmap 369/tcp
- rpc2portmap 369/udp # Coda portmapper
- codaauth2 370/tcp
- codaauth2 370/udp # Coda authentication server
- clearcase 371/tcp Clearcase
- clearcase 371/udp Clearcase
- ulistserv 372/tcp # UNIX Listserv
- ulistserv 372/udp
- ldap 389/tcp # Lightweight Directory Access Protocol
- ldap 389/udp
- imsp 406/tcp # Interactive Mail Support Protocol
- imsp 406/udp
- svrloc 427/tcp # Server Location
- svrloc 427/udp
- https 443/tcp # http protocol over TLS/SSL
- snpp 444/tcp # Simple Network Paging Protocol
- snpp 444/udp
- microsoft-ds 445/tcp # Microsoft Naked CIFS
- microsoft-ds 445/udp
- kpasswd 464/tcp
- kpasswd 464/udp
- submissions 465/tcp ssmtp smtps urd # Submission over TLS [RFC8314]
- saft 487/tcp # Simple Asynchronous File Transfer
- saft 487/udp
- isakmp 500/tcp # IPsec - Internet Security Association
- isakmp 500/udp # and Key Management Protocol
- rtsp 554/tcp # Real Time Stream Control Protocol
- rtsp 554/udp
- nqs 607/tcp # Network Queuing system
- nqs 607/udp
- npmp-local 610/tcp dqs313_qmaster # npmp-local / DQS
- npmp-local 610/udp dqs313_qmaster
- npmp-gui 611/tcp dqs313_execd # npmp-gui / DQS
- npmp-gui 611/udp dqs313_execd
- hmmp-ind 612/tcp dqs313_intercell # HMMP Indication / DQS
- hmmp-ind 612/udp dqs313_intercell
- asf-rmcp 623/udp # ASF Remote Management and Control Protocol
- qmqp 628/tcp
- qmqp 628/udp
- ipp 631/tcp # Internet Printing Protocol
- ipp 631/udp
- #
- # UNIX specific services
- #
- exec 512/tcp
- biff 512/udp comsat
- login 513/tcp
- who 513/udp whod
- shell 514/tcp cmd # no passwords used
- syslog 514/udp
- printer 515/tcp spooler # line printer spooler
- talk 517/udp
- ntalk 518/udp
- route 520/udp router routed # RIP
- timed 525/udp timeserver
- tempo 526/tcp newdate
- courier 530/tcp rpc
- conference 531/tcp chat
- netnews 532/tcp readnews
- netwall 533/udp # for emergency broadcasts
- gdomap 538/tcp # GNUstep distributed objects
- gdomap 538/udp
- uucp 540/tcp uucpd # uucp daemon
- klogin 543/tcp # Kerberized 'rlogin' (v5)
- kshell 544/tcp krcmd # Kerberized 'rsh' (v5)
- dhcpv6-client 546/tcp
- dhcpv6-client 546/udp
- dhcpv6-server 547/tcp
- dhcpv6-server 547/udp
- afpovertcp 548/tcp # AFP over TCP
- afpovertcp 548/udp
- idfp 549/tcp
- idfp 549/udp
- remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem
- nntps 563/tcp snntp # NNTP over SSL
- submission 587/tcp # Submission [RFC4409]
- ldaps 636/tcp # LDAP over SSL
- ldaps 636/udp
- tinc 655/tcp # tinc control port
- tinc 655/udp
- silc 706/tcp
- silc 706/udp
- kerberos-adm 749/tcp # Kerberos 'kadmin' (v5)
- #
- webster 765/tcp # Network dictionary
- webster 765/udp
- domain-s 853/tcp # DNS over TLS [RFC7858]
- domain-s 853/udp # DNS over DTLS [RFC8094]
- rsync 873/tcp
- ftps-data 989/tcp # FTP over SSL (data)
- ftps 990/tcp
- telnets 992/tcp # Telnet over SSL
- imaps 993/tcp # IMAP over SSL
- pop3s 995/tcp # POP-3 over SSL
- #
- # From "ssigned Numbers":
- #
- #> The Registered Ports are not controlled by the IANA and on most systems
- #> can be used by ordinary user processes or programs executed by ordinary
- #> users.
- #
- #> Ports are used in the TCP [45,106] to name the ends of logical
- #> connections which carry long term conversations. For the purpose of
- #> providing services to unknown callers, a service contact port is
- #> defined. This list specifies the port used by the server process as its
- #> contact port. While the IANA can not control uses of these ports it
- #> does register or list uses of these ports as a convienence to the
- #> community.
- #
- socks 1080/tcp # socks proxy server
- socks 1080/udp
- proofd 1093/tcp
- proofd 1093/udp
- rootd 1094/tcp
- rootd 1094/udp
- openvpn 1194/tcp
- openvpn 1194/udp
- rmiregistry 1099/tcp # Java RMI Registry
- rmiregistry 1099/udp
- kazaa 1214/tcp
- kazaa 1214/udp
- nessus 1241/tcp # Nessus vulnerability
- nessus 1241/udp # assessment scanner
- lotusnote 1352/tcp lotusnotes # Lotus Note
- lotusnote 1352/udp lotusnotes
- ms-sql-s 1433/tcp # Microsoft SQL Server
- ms-sql-s 1433/udp
- ms-sql-m 1434/tcp # Microsoft SQL Monitor
- ms-sql-m 1434/udp
- ingreslock 1524/tcp
- ingreslock 1524/udp
- datametrics 1645/tcp old-radius
- datametrics 1645/udp old-radius
- sa-msg-port 1646/tcp old-radacct
- sa-msg-port 1646/udp old-radacct
- kermit 1649/tcp
- kermit 1649/udp
- groupwise 1677/tcp
- groupwise 1677/udp
- l2f 1701/tcp l2tp
- l2f 1701/udp l2tp
- radius 1812/tcp
- radius 1812/udp
- radius-acct 1813/tcp radacct # Radius Accounting
- radius-acct 1813/udp radacct
- msnp 1863/tcp # MSN Messenger
- msnp 1863/udp
- unix-status 1957/tcp # remstats unix-status server
- log-server 1958/tcp # remstats log server
- remoteping 1959/tcp # remstats remoteping server
- cisco-sccp 2000/tcp # Cisco SCCP
- cisco-sccp 2000/udp
- search 2010/tcp ndtp
- pipe-server 2010/tcp pipe_server
- nfs 2049/tcp # Network File System
- nfs 2049/udp # Network File System
- gnunet 2086/tcp
- gnunet 2086/udp
- rtcm-sc104 2101/tcp # RTCM SC-104 IANA 1/29/99
- rtcm-sc104 2101/udp
- gsigatekeeper 2119/tcp
- gsigatekeeper 2119/udp
- gris 2135/tcp # Grid Resource Information Server
- gris 2135/udp
- cvspserver 2401/tcp # CVS client/server operations
- cvspserver 2401/udp
- venus 2430/tcp # codacon port
- venus 2430/udp # Venus callback/wbc interface
- venus-se 2431/tcp # tcp side effects
- venus-se 2431/udp # udp sftp side effect
- codasrv 2432/tcp # not used
- codasrv 2432/udp # server port
- codasrv-se 2433/tcp # tcp side effects
- codasrv-se 2433/udp # udp sftp side effect
- mon 2583/tcp # MON traps
- mon 2583/udp
- dict 2628/tcp # Dictionary server
- dict 2628/udp
- f5-globalsite 2792/tcp
- f5-globalsite 2792/udp
- gsiftp 2811/tcp
- gsiftp 2811/udp
- gpsd 2947/tcp
- gpsd 2947/udp
- gds-db 3050/tcp gds_db # InterBase server
- gds-db 3050/udp gds_db
- icpv2 3130/tcp icp # Internet Cache Protocol
- icpv2 3130/udp icp
- isns 3205/tcp # iSNS Server Port
- isns 3205/udp # iSNS Server Port
- iscsi-target 3260/tcp
- mysql 3306/tcp
- mysql 3306/udp
- nut 3493/tcp # Network UPS Tools
- nut 3493/udp
- distcc 3632/tcp # distributed compiler
- distcc 3632/udp
- daap 3689/tcp # Digital Audio Access Protocol
- daap 3689/udp
- svn 3690/tcp subversion # Subversion protocol
- svn 3690/udp subversion
- suucp 4031/tcp # UUCP over SSL
- suucp 4031/udp
- sysrqd 4094/tcp # sysrq daemon
- sysrqd 4094/udp
- sieve 4190/tcp # ManageSieve Protocol
- epmd 4369/tcp # Erlang Port Mapper Daemon
- epmd 4369/udp
- remctl 4373/tcp # Remote Authenticated Command Service
- remctl 4373/udp
- f5-iquery 4353/tcp # F5 iQuery
- f5-iquery 4353/udp
- ipsec-nat-t 4500/udp # IPsec NAT-Traversal [RFC3947]
- iax 4569/tcp # Inter-Asterisk eXchange
- iax 4569/udp
- mtn 4691/tcp # monotone Netsync Protocol
- mtn 4691/udp
- radmin-port 4899/tcp # RAdmin Port
- radmin-port 4899/udp
- rfe 5002/udp # Radio Free Ethernet
- rfe 5002/tcp
- mmcc 5050/tcp # multimedia conference control tool (Yahoo IM)
- mmcc 5050/udp
- sip 5060/tcp # Session Initiation Protocol
- sip 5060/udp
- sip-tls 5061/tcp
- sip-tls 5061/udp
- aol 5190/tcp # AIM
- aol 5190/udp
- xmpp-client 5222/tcp jabber-client # Jabber Client Connection
- xmpp-client 5222/udp jabber-client
- xmpp-server 5269/tcp jabber-server # Jabber Server Connection
- xmpp-server 5269/udp jabber-server
- cfengine 5308/tcp
- cfengine 5308/udp
- mdns 5353/tcp # Multicast DNS
- mdns 5353/udp
- postgresql 5432/tcp postgres # PostgreSQL Database
- postgresql 5432/udp postgres
- freeciv 5556/tcp rptp # Freeciv gameplay
- freeciv 5556/udp
- amqps 5671/tcp # AMQP protocol over TLS/SSL
- amqp 5672/tcp
- amqp 5672/udp
- amqp 5672/sctp
- ggz 5688/tcp # GGZ Gaming Zone
- ggz 5688/udp
- x11 6000/tcp x11-0 # X Window System
- x11 6000/udp x11-0
- x11-1 6001/tcp
- x11-1 6001/udp
- x11-2 6002/tcp
- x11-2 6002/udp
- x11-3 6003/tcp
- x11-3 6003/udp
- x11-4 6004/tcp
- x11-4 6004/udp
- x11-5 6005/tcp
- x11-5 6005/udp
- x11-6 6006/tcp
- x11-6 6006/udp
- x11-7 6007/tcp
- x11-7 6007/udp
- gnutella-svc 6346/tcp # gnutella
- gnutella-svc 6346/udp
- gnutella-rtr 6347/tcp # gnutella
- gnutella-rtr 6347/udp
- sge-qmaster 6444/tcp sge_qmaster # Grid Engine Qmaster Service
- sge-qmaster 6444/udp sge_qmaster
- sge-execd 6445/tcp sge_execd # Grid Engine Execution Service
- sge-execd 6445/udp sge_execd
- mysql-proxy 6446/tcp # MySQL Proxy
- mysql-proxy 6446/udp
- babel 6696/udp # Babel Routing Protocol
- ircs-u 6697/tcp # Internet Relay Chat via TLS/SSL
- afs3-fileserver 7000/tcp bbs # file server itself
- afs3-fileserver 7000/udp bbs
- afs3-callback 7001/tcp # callbacks to cache managers
- afs3-callback 7001/udp
- afs3-prserver 7002/tcp # users & groups database
- afs3-prserver 7002/udp
- afs3-vlserver 7003/tcp # volume location database
- afs3-vlserver 7003/udp
- afs3-kaserver 7004/tcp # AFS/Kerberos authentication
- afs3-kaserver 7004/udp
- afs3-volser 7005/tcp # volume managment server
- afs3-volser 7005/udp
- afs3-errors 7006/tcp # error interpretation service
- afs3-errors 7006/udp
- afs3-bos 7007/tcp # basic overseer process
- afs3-bos 7007/udp
- afs3-update 7008/tcp # server-to-server updater
- afs3-update 7008/udp
- afs3-rmtsys 7009/tcp # remote cache manager service
- afs3-rmtsys 7009/udp
- font-service 7100/tcp xfs # X Font Service
- font-service 7100/udp xfs
- http-alt 8080/tcp webcache # WWW caching service
- http-alt 8080/udp
- puppet 8140/tcp # The Puppet master service
- bacula-dir 9101/tcp # Bacula Director
- bacula-dir 9101/udp
- bacula-fd 9102/tcp # Bacula File Daemon
- bacula-fd 9102/udp
- bacula-sd 9103/tcp # Bacula Storage Daemon
- bacula-sd 9103/udp
- xmms2 9667/tcp # Cross-platform Music Multiplexing System
- xmms2 9667/udp
- nbd 10809/tcp # Linux Network Block Device
- zabbix-agent 10050/tcp # Zabbix Agent
- zabbix-agent 10050/udp
- zabbix-trapper 10051/tcp # Zabbix Trapper
- zabbix-trapper 10051/udp
- amanda 10080/tcp # amanda backup services
- amanda 10080/udp
- dicom 11112/tcp
- hkp 11371/tcp # OpenPGP HTTP Keyserver
- hkp 11371/udp
- bprd 13720/tcp # VERITAS NetBackup
- bprd 13720/udp
- bpdbm 13721/tcp # VERITAS NetBackup
- bpdbm 13721/udp
- bpjava-msvc 13722/tcp # BP Java MSVC Protocol
- bpjava-msvc 13722/udp
- vnetd 13724/tcp # Veritas Network Utility
- vnetd 13724/udp
- bpcd 13782/tcp # VERITAS NetBackup
- bpcd 13782/udp
- vopied 13783/tcp # VERITAS NetBackup
- vopied 13783/udp
- db-lsp 17500/tcp # Dropbox LanSync Protocol
- dcap 22125/tcp # dCache Access Protocol
- gsidcap 22128/tcp # GSI dCache Access Protocol
- wnn6 22273/tcp # wnn6
- wnn6 22273/udp
- #
- # Datagram Delivery Protocol services
- #
- rtmp 1/ddp # Routing Table Maintenance Protocol
- nbp 2/ddp # Name Binding Protocol
- echo 4/ddp # AppleTalk Echo Protocol
- zip 6/ddp # Zone Information Protocol
- #=========================================================================
- # The remaining port numbers are not as allocated by IANA.
- #=========================================================================
- # Kerberos (Project Athena/MIT) services
- # Note that these are for Kerberos v4, and are unofficial. Sites running
- # v4 should uncomment these and comment out the v5 entries above.
- #
- kerberos4 750/udp kerberos-iv kdc # Kerberos (server)
- kerberos4 750/tcp kerberos-iv kdc
- kerberos-master 751/udp kerberos_master # Kerberos authentication
- kerberos-master 751/tcp
- passwd-server 752/udp passwd_server # Kerberos passwd server
- krb-prop 754/tcp krb_prop krb5_prop hprop # Kerberos slave propagation
- krbupdate 760/tcp kreg # Kerberos registration
- swat 901/tcp # swat
- kpop 1109/tcp # Pop with Kerberos
- knetd 2053/tcp # Kerberos de-multiplexor
- zephyr-srv 2102/udp # Zephyr server
- zephyr-clt 2103/udp # Zephyr serv-hm connection
- zephyr-hm 2104/udp # Zephyr hostmanager
- eklogin 2105/tcp # Kerberos encrypted rlogin
- # Hmmm. Are we using Kv4 or Kv5 now? Worrying.
- # The following is probably Kerberos v5 --- ajt@debian.org (11/02/2000)
- kx 2111/tcp # X over Kerberos
- iprop 2121/tcp # incremental propagation
- #
- # Unofficial but necessary (for NetBSD) services
- #
- supfilesrv 871/tcp # SUP server
- supfiledbg 1127/tcp # SUP debugging
- #
- # Services added for the Debian GNU/Linux distribution
- #
- poppassd 106/tcp # Eudora
- poppassd 106/udp
- moira-db 775/tcp moira_db # Moira database
- moira-update 777/tcp moira_update # Moira update protocol
- moira-ureg 779/udp moira_ureg # Moira user registration
- spamd 783/tcp # spamassassin daemon
- omirr 808/tcp omirrd # online mirror
- omirr 808/udp omirrd
- customs 1001/tcp # pmake customs server
- customs 1001/udp
- skkserv 1178/tcp # skk jisho server port
- predict 1210/udp # predict -- satellite tracking
- rmtcfg 1236/tcp # Gracilis Packeten remote config server
- wipld 1300/tcp # Wipl network monitor
- xtel 1313/tcp # french minitel
- xtelw 1314/tcp # french minitel
- support 1529/tcp # GNATS
- cfinger 2003/tcp # GNU Finger
- frox 2121/tcp # frox: caching ftp proxy
- ninstall 2150/tcp # ninstall service
- ninstall 2150/udp
- zebrasrv 2600/tcp # zebra service
- zebra 2601/tcp # zebra vty
- ripd 2602/tcp # ripd vty (zebra)
- ripngd 2603/tcp # ripngd vty (zebra)
- ospfd 2604/tcp # ospfd vty (zebra)
- bgpd 2605/tcp # bgpd vty (zebra)
- ospf6d 2606/tcp # ospf6d vty (zebra)
- ospfapi 2607/tcp # OSPF-API
- isisd 2608/tcp # ISISd vty (zebra)
- afbackup 2988/tcp # Afbackup system
- afbackup 2988/udp
- afmbackup 2989/tcp # Afmbackup system
- afmbackup 2989/udp
- xtell 4224/tcp # xtell server
- fax 4557/tcp # FAX transmission service (old)
- hylafax 4559/tcp # HylaFAX client-server protocol (new)
- distmp3 4600/tcp # distmp3host daemon
- munin 4949/tcp lrrd # Munin
- enbd-cstatd 5051/tcp # ENBD client statd
- enbd-sstatd 5052/tcp # ENBD server statd
- pcrd 5151/tcp # PCR-1000 Daemon
- noclog 5354/tcp # noclogd with TCP (nocol)
- noclog 5354/udp # noclogd with UDP (nocol)
- hostmon 5355/tcp # hostmon uses TCP (nocol)
- hostmon 5355/udp # hostmon uses UDP (nocol)
- rplay 5555/udp # RPlay audio service
- nrpe 5666/tcp # Nagios Remote Plugin Executor
- nsca 5667/tcp # Nagios Agent - NSCA
- mrtd 5674/tcp # MRT Routing Daemon
- bgpsim 5675/tcp # MRT Routing Simulator
- canna 5680/tcp # cannaserver
- syslog-tls 6514/tcp # Syslog over TLS [RFC5425]
- sane-port 6566/tcp sane saned # SANE network scanner daemon
- ircd 6667/tcp # Internet Relay Chat
- zope-ftp 8021/tcp # zope management by ftp
- tproxy 8081/tcp # Transparent Proxy
- omniorb 8088/tcp # OmniORB
- omniorb 8088/udp
- clc-build-daemon 8990/tcp # Common lisp build daemon
- xinetd 9098/tcp
- mandelspawn 9359/udp mandelbrot # network mandelbrot
- git 9418/tcp # Git Version Control System
- zope 9673/tcp # zope server
- webmin 10000/tcp
- kamanda 10081/tcp # amanda backup services (Kerberos)
- kamanda 10081/udp
- amandaidx 10082/tcp # amanda backup services
- amidxtape 10083/tcp # amanda backup services
- smsqp 11201/tcp # Alamin SMS gateway
- smsqp 11201/udp
- xpilot 15345/tcp # XPilot Contact Port
- xpilot 15345/udp
- sgi-cmsd 17001/udp # Cluster membership services daemon
- sgi-crsd 17002/udp
- sgi-gcd 17003/udp # SGI Group membership daemon
- sgi-cad 17004/tcp # Cluster Admin daemon
- isdnlog 20011/tcp # isdn logging system
- isdnlog 20011/udp
- vboxd 20012/tcp # voice box system
- vboxd 20012/udp
- binkp 24554/tcp # binkp fidonet protocol
- asp 27374/tcp # Address Search Protocol
- asp 27374/udp
- csync2 30865/tcp # cluster synchronization tool
- dircproxy 57000/tcp # Detachable IRC Proxy
- tfido 60177/tcp # fidonet EMSI over telnet
- fido 60179/tcp # fidonet EMSI over TCP
- # Local services
- `
- )
- type Protoent struct {
- Name string
- Aliases []string
- Number int
- }
- type Servent struct {
- Name string
- Aliases []string
- Port int
- Protocol *Protoent
- }
- // These variables get populated from /etc/protocols and /etc/services
- // respectively.
- var (
- Protocols []*Protoent
- Services []*Servent
- )
- func init() {
- protoMap := make(map[string]*Protoent)
- // Load protocols
- data, err := ioutil.ReadFile("/etc/protocols")
- if err != nil {
- if !os.IsNotExist(err) {
- panic(err)
- }
- data = []byte(protocols)
- }
- for _, line := range strings.Split(string(data), "\n") {
- line = strings.TrimSpace(line)
- split := strings.SplitN(line, "#", 2)
- fields := strings.Fields(split[0])
- if len(fields) < 2 {
- continue
- }
- num, err := strconv.ParseInt(fields[1], 10, 32)
- if err != nil {
- // If we find lines that don't match the expected format we skip over them.
- // The expected format is <protocol> <number> <aliases> ...
- // As we're using strings.Fields for splitting the line, failures can happen if the protocol field contains white spaces.
- continue
- }
- protoent := &Protoent{
- Name: fields[0],
- Aliases: fields[2:],
- Number: int(num),
- }
- Protocols = append(Protocols, protoent)
- protoMap[fields[0]] = protoent
- }
- // Load services
- data, err = ioutil.ReadFile("/etc/services")
- if err != nil {
- if !os.IsNotExist(err) {
- panic(err)
- }
- data = []byte(services)
- }
- for _, line := range strings.Split(string(data), "\n") {
- line = strings.TrimSpace(line)
- split := strings.SplitN(line, "#", 2)
- fields := strings.Fields(split[0])
- if len(fields) < 2 {
- continue
- }
- // https://gitlab.com/cznic/libc/-/issues/25
- if strings.Index(fields[1], "/") < 0 {
- continue
- }
- name := fields[0]
- portproto := strings.SplitN(fields[1], "/", 2)
- port, err := strconv.ParseInt(portproto[0], 10, 32)
- if err != nil {
- // If we find lines that don't match the expected format we skip over them.
- // The expected format is <service-name> <port>/<protocol> [aliases ...]
- // As we're using strings.Fields for splitting the line, failures can happen if the service name field contains white spaces.
- continue
- }
- proto := portproto[1]
- aliases := fields[2:]
- Services = append(Services, &Servent{
- Name: name,
- Aliases: aliases,
- Port: int(port),
- Protocol: protoMap[proto],
- })
- }
- }
- // Equal checks if two Protoents are the same, which is the case if
- // their protocol numbers are identical or when both Protoents are
- // nil.
- func (this *Protoent) Equal(other *Protoent) bool {
- if this == nil && other == nil {
- return true
- }
- if this == nil || other == nil {
- return false
- }
- return this.Number == other.Number
- }
- // Equal checks if two Servents are the same, which is the case if
- // their port numbers and protocols are identical or when both
- // Servents are nil.
- func (this *Servent) Equal(other *Servent) bool {
- if this == nil && other == nil {
- return true
- }
- if this == nil || other == nil {
- return false
- }
- return this.Port == other.Port &&
- this.Protocol.Equal(other.Protocol)
- }
- // GetProtoByNumber returns the Protoent for a given protocol number.
- func GetProtoByNumber(num int) (protoent *Protoent) {
- for _, protoent := range Protocols {
- if protoent.Number == num {
- return protoent
- }
- }
- return nil
- }
- // GetProtoByName returns the Protoent whose name or any of its
- // aliases matches the argument.
- func GetProtoByName(name string) (protoent *Protoent) {
- for _, protoent := range Protocols {
- if protoent.Name == name {
- return protoent
- }
- for _, alias := range protoent.Aliases {
- if alias == name {
- return protoent
- }
- }
- }
- return nil
- }
- // GetServByName returns the Servent for a given service name or alias
- // and protocol. If the protocol is nil, the first service matching
- // the service name is returned.
- func GetServByName(name string, protocol *Protoent) (servent *Servent) {
- for _, servent := range Services {
- if !servent.Protocol.Equal(protocol) {
- continue
- }
- if servent.Name == name {
- return servent
- }
- for _, alias := range servent.Aliases {
- if alias == name {
- return servent
- }
- }
- }
- return nil
- }
- // GetServByPort returns the Servent for a given port number and
- // protocol. If the protocol is nil, the first service matching the
- // port number is returned.
- func GetServByPort(port int, protocol *Protoent) *Servent {
- for _, servent := range Services {
- if servent.Port == port && servent.Protocol.Equal(protocol) {
- return servent
- }
- }
- return nil
- }
|