[EMAIL PROTECTED] (Marco d'Itri) writes: > --GvXjxJ+pjyke8COw > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > Content-Transfer-Encoding: quoted-printable > > On Sep 10, jaalto <[EMAIL PROTECTED]> wrote: > >> As of 2008-09-10 the /etc/services does not define all standard ports >> as defined by IANA. > You must have missed the detailed explanation about this at the top of > the file.
Done? Yes I read this: # 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. "Only added by request" sounds like everyone should report problems individually as they may notice it. Having automated way to keep the file updated would be more welcomed. The IANA is the port assignment authority, so these would be expected to be found from standard system. I'm attaching script to automate keeping the posrt numbers updated easily. Jari
#!/bin/bash # iana-ports.sh -- Download IANA and compare entries to /etc/services # # Copyright (C) 2008 Jari Aalto <[EMAIL PROTECTED]> # # License # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with program. If not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # # Visit <http://www.gnu.org/copyleft/gpl.html> # SERVICES=/etc/services # Positions according to Debian $SERVICES layout # 123456789 123456 # 123456789 123456 # 123456789 123456 # www 80/tcp http # WorldWideWeb HTTP SERVICES_FMT="%-16s%-16s%16s# %s\n" FILE=iana-port-numbers.txt URL=http://www.iana.org/assignments/port-numbers shopt -s extglob Help () { echo "\ Synopsis: iana-ports.sh [-h] [IANA-FILE-NAME-TO-SAVE] Description: Download IANA port number definitions, sore them to filename given in command line (default: $FILE) and compare those to $SERVICES. Display entries that are missing from $SERVICES" exit ${1:-0} } Download () { local dest=$1 rm -f $dest wget -q -O $dest $URL } Parse () { local file=$1 awk '/^[a-z-]+[ \t]+[0-9]+\/[a-z]+ / { print }' $file } Combine () { iana=$1 services=$SERVICES while read serv port rest do # Skip 21/sctp 9/dccp [[ "$port" == */+(tcp|udp) ]] || continue if ! grep -qF "$port" $services then printf "$SERVICES_FMT" "$serv" "$port" "" "$rest" fi done < $iana } Main () { [[ "$*" == *+(-h|--help) ]] && Help local file=${1:-$FILE} local iana=$file.iana Download $file Parse $file > $iana Combine $iana } Main "$@" # End of file