Getservbyname() Function In Python

Function Name:

getservbyname

 

Function Signature:

getservbyname(servicename, protocolname)

 

Function overview:

The function getservbyname() takes a network service name and an underlying protocol name and returns the port number on which the service is defined by /etc/services. By network service we mean an application protocol like http or ftp. The underlying protocol means is the transport layer protocol like tcp or udp.

 

Exceptions:

OSError is raised if the service name or the protocol name mentioned is not defined in the system. Note that, the servicename and protocolname are both case sensitive.  If HTTP is passed for servicename instead of http,

the function will raise an OSError stating "service/proto not found".

 

Parameters:

servicename     - The network service name ie., application protocol

 

protocolname    - Name of the underlying transport layer protocol either tcp

                                or udp. This is an optional parameter.

          If this is not provided any protocol will be matched.

                                As per IANA, it is the policy to define a well known and same         

                                port  number for both tcp and udp protocols of a service.

                 

 

Example:

import socket

 

#Service list has a list of application protocols

serviceList = [

              "daytime",

              "ftp",

              "gopher",

              "http",

              "https",

              "imap",

              "kerberos-adm",

              "mysql-im",

              "pop3",

              "qotd",   #quote of the day

              "ssh",    #ssh remote login protocol

              "snmp",

              "smtp"]

 

underlyingProtocol = "tcp"

 

print("======>Services and their port numbers<======")

for service in serviceList:               

    #get the port number for each application protocol which uses TCP as underlying

    portNum = socket.getservbyname(service, underlyingProtocol)

    print("The service {} uses port number {} ".format(service, portNum))

 

 

Output:

The service daytime uses port number 13

The service ftp uses port number 21

The service gopher uses port number 70

The service http uses port number 80

The service https uses port number 443

The service imap uses port number 143

The service kerberos-adm uses port number 749

The service mysql-im uses port number 2273

The service pop3 uses port number 110

The service qotd uses port number 17

The service ssh uses port number 22

The service snmp uses port number 161

The service smtp uses port number 25

 

 

 


Copyright 2018 © pythontic.com