Copyright (C) 2000-2012 |
GNU Info (guile.info)Network Databases and Address ConversionNetwork Databases and Address Conversion ---------------------------------------- This section describes procedures which convert internet addresses and query various network databases. Care should be taken when using the database routines since they are not reentrant. Address Conversion .................. - primitive: inet-aton address Converts a string containing an Internet host address in the traditional dotted decimal notation into an integer. (inet-aton "127.0.0.1") => 2130706433 - primitive: inet-ntoa inetid Converts an integer Internet host address into a string with the traditional dotted decimal representation. (inet-ntoa 2130706433) => "127.0.0.1" - primitive: inet-netof address Returns the network number part of the given integer Internet address. (inet-netof 2130706433) => 127 - primitive: inet-lnaof address Returns the local-address-with-network part of the given Internet address. (inet-lnaof 2130706433) => 1 - primitive: inet-makeaddr net lna Makes an Internet host address by combining the network number NET with the local-address-within-network number LNA. (inet-makeaddr 127 1) => 2130706433 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: - procedure: hostent:name host The "official" hostname for HOST. - procedure: hostent:aliases host A list of aliases for HOST. - procedure: hostent:addrtype host The host address type. For hosts with Internet addresses, this will return `AF_INET'. - procedure: hostent:length host The length of each address for HOST, in bytes. - procedure: hostent:addr-list host The list of network addresses associated with HOST. The following procedures are used to search the host database: - primitive: gethost [host] - procedure: gethostbyname hostname - procedure: gethostbyaddr address 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. The following procedures may be used to step through the host database from beginning to end. - 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. - 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. - procedure: endhostent Close the stream used by `gethostent'. The return value is unspecified. - primitive: sethost [stayopen] If STAYOPEN is omitted, this is equivalent to `endhostent'. Otherwise it is equivalent to `sethostent stayopen'. The Network Database .................... The following functions accept an object representing a network and return a selected component: - procedure: netent:name net The "official" network name. - procedure: netent:aliases net A list of aliases for the network. - procedure: netent:addrtype net The type of the network number. Currently, this returns only `AF_INET'. - procedure: netent:net net The network number. The following procedures are used to search the network database: - primitive: getnet [net] - procedure: getnetbyname net-name - procedure: getnetbyaddr net-number 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. - 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. - procedure: getnetent Return the next entry from the network database. - procedure: endnetent Close the stream used by `getnetent'. The return value is unspecified. - primitive: setnet [stayopen] If STAYOPEN is omitted, this is equivalent to `endnetent'. Otherwise it is equivalent to `setnetent stayopen'. The Protocol Database ..................... The following functions accept an object representing a protocol and return a selected component: - procedure: protoent:name protocol The "official" protocol name. - procedure: protoent:aliases protocol A list of aliases for the protocol. - procedure: protoent:proto protocol The protocol number. The following procedures are used to search the protocol database: - primitive: getproto [protocol] - procedure: getprotobyname name - procedure: getprotobynumber number 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. - 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. - procedure: getprotoent Return the next entry from the protocol database. - procedure: endprotoent Close the stream used by `getprotoent'. The return value is unspecified. - primitive: setproto [stayopen] If STAYOPEN is omitted, this is equivalent to `endprotoent'. Otherwise it is equivalent to `setprotoent stayopen'. The Service Database .................... The following functions accept an object representing a service and return a selected component: - procedure: servent:name serv The "official" name of the network service. - procedure: servent:aliases serv A list of aliases for the network service. - procedure: servent:port serv The Internet port used by the service. - 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: - primitive: getserv [name [protocol]] - procedure: getservbyname name protocol - procedure: getservbyport port 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). The following procedures may be used to step through the service database from beginning to end. - 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. - procedure: getservent Return the next entry from the services database. - procedure: endservent Close the stream used by `getservent'. The return value is unspecified. - primitive: setserv [stayopen] If STAYOPEN is omitted, this is equivalent to `endservent'. Otherwise it is equivalent to `setservent stayopen'. automatically generated by info2www version 1.2.2.9 |