DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(guile.info.gz) Network Databases

Info Catalog (guile.info.gz) Network Address Conversion (guile.info.gz) Networking (guile.info.gz) Network Sockets and Communication
 
 38.11.2 Network Databases
 -------------------------
 
 This section describes procedures which query various network databases.
 Care should be taken when using the database routines since they are not
 reentrant.
 
 38.11.2.1 The Host Database
 ...........................
 
 A "host object" is a structure that represents what is known about a
 network host, and is the usual way of representing a system's network
 identity inside software.
 
    The following functions accept a host object and return a selected
 component:
 
  -- Scheme Procedure: hostent:name host
      The "official" hostname for HOST.
 
  -- Scheme Procedure: hostent:aliases host
      A list of aliases for HOST.
 
  -- Scheme Procedure: hostent:addrtype host
      The host address type.  For hosts with Internet addresses, this
      will return `AF_INET'.
 
  -- Scheme Procedure: hostent:length host
      The length of each address for HOST, in bytes.
 
  -- Scheme Procedure: hostent:addr-list host
      The list of network addresses associated with HOST.
 
    The following procedures are used to search the host database:
 
  -- Scheme Procedure: gethost [host]
  -- Scheme Procedure: gethostbyname hostname
  -- Scheme Procedure: gethostbyaddr address
  -- C Function: scm_gethost (host)
      Look up a host by name or address, returning a host object.  The
      `gethost' procedure will accept either a string name or an integer
      address; if given no arguments, it behaves like `gethostent' (see
      below).  If a name or address is supplied but the address can not
      be found, an error will be thrown to one of the keys:
      `host-not-found', `try-again', `no-recovery' or `no-data',
      corresponding to the equivalent `h_error' values.  Unusual
      conditions may result in errors thrown to the `system-error' or
      `misc_error' keys.
 
           (gethost "www.gnu.org")
           => #("www.gnu.org" () 2 4 (3353880842))
 
           (gethostbyname "www.emacs.org")
           => #("emacs.org" ("www.emacs.org") 2 4 (1073448978))
 
    The following procedures may be used to step through the host
 database from beginning to end.
 
  -- Scheme Procedure: sethostent [stayopen]
      Initialize an internal stream from which host objects may be read.
      This procedure must be called before any calls to `gethostent',
      and may also be called afterward to reset the host entry stream.
      If STAYOPEN is supplied and is not `#f', the database is not
      closed by subsequent `gethostbyname' or `gethostbyaddr' calls,
      possibly giving an efficiency gain.
 
  -- Scheme Procedure: gethostent
      Return the next host object from the host database, or `#f' if
      there are no more hosts to be found (or an error has been
      encountered).  This procedure may not be used before `sethostent'
      has been called.
 
  -- Scheme Procedure: endhostent
      Close the stream used by `gethostent'.  The return value is
      unspecified.
 
  -- Scheme Procedure: sethost [stayopen]
  -- C Function: scm_sethost (stayopen)
      If STAYOPEN is omitted, this is equivalent to `endhostent'.
      Otherwise it is equivalent to `sethostent stayopen'.
 
 38.11.2.2 The Network Database
 ..............................
 
 The following functions accept an object representing a network and
 return a selected component:
 
  -- Scheme Procedure: netent:name net
      The "official" network name.
 
  -- Scheme Procedure: netent:aliases net
      A list of aliases for the network.
 
  -- Scheme Procedure: netent:addrtype net
      The type of the network number.  Currently, this returns only
      `AF_INET'.
 
  -- Scheme Procedure: netent:net net
      The network number.
 
    The following procedures are used to search the network database:
 
  -- Scheme Procedure: getnet [net]
  -- Scheme Procedure: getnetbyname net-name
  -- Scheme Procedure: getnetbyaddr net-number
  -- C Function: scm_getnet (net)
      Look up a network by name or net number in the network database.
      The NET-NAME argument must be a string, and the NET-NUMBER
      argument must be an integer.  `getnet' will accept either type of
      argument, behaving like `getnetent' (see below) if no arguments are
      given.
 
    The following procedures may be used to step through the network
 database from beginning to end.
 
  -- Scheme Procedure: setnetent [stayopen]
      Initialize an internal stream from which network objects may be
      read.  This procedure must be called before any calls to
      `getnetent', and may also be called afterward to reset the net
      entry stream.  If STAYOPEN is supplied and is not `#f', the
      database is not closed by subsequent `getnetbyname' or
      `getnetbyaddr' calls, possibly giving an efficiency gain.
 
  -- Scheme Procedure: getnetent
      Return the next entry from the network database.
 
  -- Scheme Procedure: endnetent
      Close the stream used by `getnetent'.  The return value is
      unspecified.
 
  -- Scheme Procedure: setnet [stayopen]
  -- C Function: scm_setnet (stayopen)
      If STAYOPEN is omitted, this is equivalent to `endnetent'.
      Otherwise it is equivalent to `setnetent stayopen'.
 
 38.11.2.3 The Protocol Database
 ...............................
 
 The following functions accept an object representing a protocol and
 return a selected component:
 
  -- Scheme Procedure: protoent:name protocol
      The "official" protocol name.
 
  -- Scheme Procedure: protoent:aliases protocol
      A list of aliases for the protocol.
 
  -- Scheme Procedure: protoent:proto protocol
      The protocol number.
 
    The following procedures are used to search the protocol database:
 
  -- Scheme Procedure: getproto [protocol]
  -- Scheme Procedure: getprotobyname name
  -- Scheme Procedure: getprotobynumber number
  -- C Function: scm_getproto (protocol)
      Look up a network protocol by name or by number.  `getprotobyname'
      takes a string argument, and `getprotobynumber' takes an integer
      argument.  `getproto' will accept either type, behaving like
      `getprotoent' (see below) if no arguments are supplied.
 
    The following procedures may be used to step through the protocol
 database from beginning to end.
 
  -- Scheme Procedure: setprotoent [stayopen]
      Initialize an internal stream from which protocol objects may be
      read.  This procedure must be called before any calls to
      `getprotoent', and may also be called afterward to reset the
      protocol entry stream.  If STAYOPEN is supplied and is not `#f',
      the database is not closed by subsequent `getprotobyname' or
      `getprotobynumber' calls, possibly giving an efficiency gain.
 
  -- Scheme Procedure: getprotoent
      Return the next entry from the protocol database.
 
  -- Scheme Procedure: endprotoent
      Close the stream used by `getprotoent'.  The return value is
      unspecified.
 
  -- Scheme Procedure: setproto [stayopen]
  -- C Function: scm_setproto (stayopen)
      If STAYOPEN is omitted, this is equivalent to `endprotoent'.
      Otherwise it is equivalent to `setprotoent stayopen'.
 
 38.11.2.4 The Service Database
 ..............................
 
 The following functions accept an object representing a service and
 return a selected component:
 
  -- Scheme Procedure: servent:name serv
      The "official" name of the network service.
 
  -- Scheme Procedure: servent:aliases serv
      A list of aliases for the network service.
 
  -- Scheme Procedure: servent:port serv
      The Internet port used by the service.
 
  -- Scheme Procedure: servent:proto serv
      The protocol used by the service.  A service may be listed many
      times in the database under different protocol names.
 
    The following procedures are used to search the service database:
 
  -- Scheme Procedure: getserv [name [protocol]]
  -- Scheme Procedure: getservbyname name protocol
  -- Scheme Procedure: getservbyport port protocol
  -- C Function: scm_getserv (name, protocol)
      Look up a network service by name or by service number, and return
      a network service object.  The PROTOCOL argument specifies the name
      of the desired protocol; if the protocol found in the network
      service database does not match this name, a system error is
      signalled.
 
      The `getserv' procedure will take either a service name or number
      as its first argument; if given no arguments, it behaves like
      `getservent' (see below).
 
           (getserv "imap" "tcp")
           => #("imap2" ("imap") 143 "tcp")
 
           (getservbyport 88 "udp")
           => #("kerberos" ("kerberos5" "krb5") 88 "udp")
 
    The following procedures may be used to step through the service
 database from beginning to end.
 
  -- Scheme Procedure: setservent [stayopen]
      Initialize an internal stream from which service objects may be
      read.  This procedure must be called before any calls to
      `getservent', and may also be called afterward to reset the
      service entry stream.  If STAYOPEN is supplied and is not `#f',
      the database is not closed by subsequent `getservbyname' or
      `getservbyport' calls, possibly giving an efficiency gain.
 
  -- Scheme Procedure: getservent
      Return the next entry from the services database.
 
  -- Scheme Procedure: endservent
      Close the stream used by `getservent'.  The return value is
      unspecified.
 
  -- Scheme Procedure: setserv [stayopen]
  -- C Function: scm_setserv (stayopen)
      If STAYOPEN is omitted, this is equivalent to `endservent'.
      Otherwise it is equivalent to `setservent stayopen'.
 
Info Catalog (guile.info.gz) Network Address Conversion (guile.info.gz) Networking (guile.info.gz) Network Sockets and Communication
automatically generated byinfo2html