                    Obtaining Host and Address Information

                                   Ron Ray
                            Network Services Group
                         Homewood Academic Computing
                           Johns Hopkins University
                              (draft manuscript)



Electronic mail is one of the most popular facilities used on wide area
networks. Users separated by hundreds or thousands of miles can exchange
messages and documents on-line, usually in a small period of time. Like
U.S. postal mail, electronic mail uses an addressing scheme to ensure
correct delivery of messages. Unlike U.S. postal mail, the form of the
electronic mail address varies from one network to the next. In general,
an electronic mail address is composed of a username and a computer host
name. Unfortunately, there is no general scheme for disseminating host
names and usernames.           

Finding information about a host on a wide-area network can be
surprisingly difficult. One common problem involves finding information 
about a username and a host name when only a personal name and an
organization name is available. The best solution to this problem is to
contact the person by mail or phone and ask for their username and
network address. Unfortunately, this is not always possible. The user
may not be available or they may not know their network address. Other
common problems include finding a network address when only the host
name is known and finding a username when the network address is known
but the username is not known. If there is no  way to contact the
intended recipient by mail or phone, a detective game must be played
using whatever resources a given network provides. These  resources vary
from network to network. They are often indifferently documented and
sometimes several overlapping resources are available on the same
network. The purpose of this document is to acquaint the reader with
some of the resources that are available and how they are used.            
                                                                 
I. Bitnet. The Bitnet is a wide-area network of about 3000 hosts
connected mostly by point-to-point links. Address information is
probably easier to  come by on the Bitnet than other wide area networks.
This is due to several factors, One, all Bitnet host names are included
in a single file that's kept on every host connected to the Bitnet. An
organization name is usually included following the Bitnet address. It's
possible to search this hosts file using the organization name as the
search string, and find the host address or addresses associated with
this organization. The name and location of this file should be obtained
from the system administrator since it varies from system to system.
Second, there is a central facility which provides a database,
informational files and other resources about Bitnet. Finally, there are
a variety of other hosts, called listservs, that  provide files,
databases of usernames and other resources. 
                                                                          
The Bitnet Information Center  keeps files of host names, host
information, gateways to other networks, etc. on line for retrieval. In
addition, some files can be searched with a database server which will
return, via mail, only those records that are selected by the search.
The host name associated with the Bitnet information center is Bitnic.
                                                              
I.1. Netserv. A list of files available from Bitnic can be retrieved by 
sending the following interactive command to Bitnic's file server 
(named netserv):
                                                                        
  $ send  netserv@Bitnic get netserv filelist  ! for VMS machines running JNET

   tell netserv at Bitnic get netserv filelist  ! for VM/CMS machines

Note, most of these files are lists of other files that can be received.
A particular file can be retrieved with the command:                    

     $ send netserv@Bitnic get <filename> <filetype> ! for VMS machines

     tell netserv at Bitnic get <filename> <filetype> ! for VM/CMS machines

One important piece of information that can be retrieved in this fashion
is the so-called node entry. This record contains things like the
electronic mail address of the host administrator, the type of computer
etc. Sometimes the Bitnet host name is known but the mail recipient's
username is not known. In this case, the host node entry can be
consulted for the postmaster's electronic mail address. The postmaster
can be asked, via mail, for information about the desired address.
The node entry information can be obtained with the following command:
                                                                
   $ send netserv@Bitnic get nodentry <nodename> ! for VMS machines running 
                                                   JNET

     tell netserv at Bitnic get nodentry <nodename> ! for VM/CMS machines

More information about using netserv at Bitnic can be obtained with the
command:                                                               

     $ send netserv@Bitnic get helpfile             ! for VMS machines running 
                                                      JNET

     tell netserv at Bitnic get helpfile             ! for VM?/CMS machines

It's also worth noting that netserv commands can be placed in the first
line of a mail message sent to netserv@Bitnic.                      

I.2. Database. Bitnic also provides a database server that allows
selective access to its database files. One useful thing that can be
done with  database is to find all the Bitnet sites in a particular
state. For example, the command:                                           


    $ Send database@Bitnic FIND STATE DC (FORMAT NAMESFRM

     tell netserv at Bitnic FIND STATE DC (FORMAT NAMESFRM
         
returns a list of all Bitnet hosts in Washington DC. Individual host 
information can be retrieved by sending the command:                 

    $ Send database@Bitnic FIND HOST <hostname>

    tell database at Bitnic FIND HOST <hostname>

Database can also be used to search mailing list archives. More will be
said about this later.                                                     

Internet hosts without direct Bitnet access can send send mail commands
to database@Bitnic. To do this they must register with the database 
server and receive a password. This procedure, as well as general
database help, is provided by sending mail to database@Bitnic with the
command "help" in the first line of text.                                                 

I.3. Listservs. Listserv is software developed for IBM Bitnet hosts. The
original function of this software was to service mailing lists. Since
then the software has been updated to offer other features such as file
service, user directory service , on-line help and a database server. A
list of listserv servers (and other Bitnet servers) can be obtained by
sending the command:
                                                                        
$ send service@Bitnic get Bitnet servers

tell service at Bitnic get Bitnet servers

One of the things that is contained in this file is a list of listsrv's
that have user directory services. If it's necessary to find someone's
username at one of these hosts, the command:                           

$ send listserv@<nodename> /whois  <search-string>

tell listserv at <nodename> /whois <search-string>

where search-string is a personal name or some substring of a personal
name, will return the username associated with the search string (if its
in their database). Some listserv's maintain a general user directory
service  for users anywhere on the Bitnet. Unfortunately, there is no
simple way to  find out who subscribes to these listservs. The listserv
at the host marist has the largest collection of usernames since it
keeps the names of anyone who who ever subscribed to a Bitnet mailing
list.                         

A list of Bitnet related files can be obtained from listserv by means of the
command:
                      
$ send listserv@Bitnic get netinfo filelist

tell listserv at Bitnic get netinfo filelist

Listservs also have a database server. Documentation for the database
server is contained in the file listdb memo.                         

II. The Internet. The Internet is a rapidly growing wide-area network of
more  than 100,000 hosts. It is not really a single network. Instead, it
is a network of networks, partitioned in a tree-like fashion. The
partitions, and sub-partitions, etc. are called domains. Responsibility
for the internet domains is largely local to the domain. Each domain has
its own organization and contacts. Information about hosts associated
with a domain are provided by the domain name service. Several hosts
associated with a given domain are designated as nameservers for the
domain. The nameservers keep information about the other hosts
associated with the  domain and /or other nameservers associated with
further partitions of their  domain. Internet hosts needing address
information about hosts associated  with a domain automatically query
the appropriate nameserver. Note, internet  hosts running  old versions
of the internet communications software, tcp/ip, may be unable to do
this. These hosts  have to resort to using large but incomplete tables
of internet hosts.  Overall responsibility for the internet is
associated with the Network Information Center, NIC. NIC provides
information about first and second  level domains, manages the
registration of domains and provides general  support for the internet.     

Troubles with host names and addresses and with E-mail addresses can
often be resolved by first using facilities provided by nic, such as
whois, and then manually querying the Domain Name Service for local
domain  information.                                                


II.1. The whois database maintains information about hosts, domains and
users. Information from the database can be obtained by running a whois
client program from a remote host, by telneting to nic.ddn.mil and
running the whois program interactively, or by sending mail to
server@nic.ddn.mil with a database query in the subject line. Note,
telnet is the remote login application provided with tcp/ip.                  

Not all hosts on the internet are in the whois database. Instead,
information about the top two domains is maintained. This information
includes an E-mail address of a contact person for that domain. Some
individual hosts and individual usernames are also registered with the
NIC and therefore available from whois. 
                                                                 
Information about domains can be obtained by issuing the following
command:

whois domain  jhu.edu      ! where jhu.edu is the domain for 
			   ! which information is desired

This command can be included in the subject line of a mail message sent
to service@nic.ddn.mil. Information returned by this query includes the
E-mail address of the responsible person for the domain, organization
name and address and addresses of the domain name servers.
                                                                  
A wildcard search can be done by including a dot or dots after the
argument.  This will match all records whose specified field begins with
the argument. Note, a general search on all fields of the database can
be achieved by leaving off the keyword argument and simply typing in the
text to be searched for.  For example, the following query would return
several records, one of which would be the domain jhu.edu:                 

whois jhu...

If a general search is done and/or if a wildcard is used many database
entries may be located. In this case a summary of the records found will
be returned. Full information on a particular record can then be
requested by specifying the desired record more completely as, for
example, "domain jhu.edu", or by  specifying the record's handle in the
database query. A record's handle is a unique identifier associated with
each record in the database. The handle is always enclosed in
parentheses and always follows the  record's name. A query of the form:
              
whois handle net-jhu

will return just the record associated with the handle net-jhu. Some
record types have subdisplays associated with them. A subdisplay is
simply additional information associated with a record. For example,
host records have a subdisplay of registered users. The output keyword
of "expand"  forces the output of all subdisplays associated with a
record. The following query will show all the registered users
associated  with the host jhunix.hcf.jhu.edu:                              

whois host expand jhunix.hcf.jhu.edu


If some information is known about an internet hosts domain, 
organization name, or other associated field, whois can be used to
initiate a hierarchical search for the necessary information. Locating
the domain or network record will provide a E-mail address. Inquiries
could be made to this address for other E-mail addresses  associated
with lower level domains or individual hosts that might be able to
provide help. Alternately, the domain service addresses provided could
be used with another utility called nslookup to obtain further
information. Finally, the desired host or E-mail address information may
be directly obtainable from whois. The proportion of registered to
non-registered hosts and addresses is small, however. The query:   

whois help

can be used to obtain more information about the use of whois. It should
be noted that some client versions of whois have a  different command 
syntax then that described above.                             

II.2. A number of online files are kept at NIC. These include files
containing addresses of responsible persons for domains, files 
detailing host administrator duties, etc. They can be accessed by
anonymous FTP or by sending mail to service@nic.ddn.mil. To get a list
of  what types of files are available, send mail to service@nic.ddn.mil
with the command "help" in the subject line: To retrieve a specific
file, use the command "send XXX" where XXX is a fully specified
filename. For example, host administrator addresses are contained in the
file named hadminbyaddr.txt located in the netinfo directory. The
command:                                    

send netinfo:hadminbyaddr.txt

when included in the subject line of a mail message to
service@nic.ddn.mil can be used to obtain the file by mail.                

II.3 Nslookup.  Nslookup is a utility that allows users to query
nameservers.  It can be used to get addresses associated with host
names, host names associated with addresses, mail addresses of the
server manager, as well as to locate a server  associated with a
particular domain.                         

Some tcp/ip implementations don't have the ability to use nameservers.
Instead, they keep tables of addresses and host names. If these hosts
need to access another host whose address is not in their table, they
can consult someone with access to nslookup to obtain the address.
Addresses associated with a particular domain  name can be obtained by
typing the domain name in response to the nslookup prompt. For example,
the address associated with the host name jhmail.hcf.jhu.edu would be
obtained as follows:                               
                                                                              
$ nslookup > jhmail.hcf.jhu.edu
 
Sometimes users will have a particular address and will want to know the
host  name associated with the address. To obtain a host name 
associated with a particular address the address is entered with the
bytes reversed followed by .in-addr.arpa. For example, to get the host
name  associated with the address 128.220.2.7 type:                      
     
$ nslookup 
nslookup> set query=ptr                                        
nslookup> 7.2.220.128.in-addr.arpa

The nameservers allow hosts that are not really internet hosts to appear
to be on the internet. This is done by means of mail exchange or MX
records.  Unfortunately, not all mailers can do MX lookups.  When the
situation occurs where a correct appearing address doesn't work with
mail or where a simple nslookup query for the address doesn't work, the
nameserver should be queried for the existence of an MX record. This can
be done by  entering:                                             

nslookup> set query=mx 
nslookup> enter-the-address-here

If an MX record exists for an address and if a particular mailer can't
do MX  lookups, an address of the following form will probably work:

username%mail-address@MX-address

Nslookup can be used to provide information about who maintains a
domain's nameserver. This user, the hostmaster, may be able to provide
additional information when contacted via E-mail. If a nameserver
associated with a particular domain is known, the procedure is as
follows:
                                                                 
nslookup>server enter-the-server-name-here
  
nslookup> set debug

nslookup>  enter-hostname-here

A variety of debugging information will be returned, one item of which
is the E-mail address of the hostmaster. The relevant line of output
will begin with the string "mail addr =" . The mail address is in the
form:
                                                                             
username.hostname.domain-name

and will have to be changed to:

username@hostname.domain-name

In the above situation, the address of the nameserver associated with a
given domain is often not known. A local nameserver can be used to
provide this information in the debug mode by giving it a dummy address
consisting of a "made-up"hostname followed by a correct domain portion
of the address. For example, if information about the umd.edu domain
nameservers is needed, nslookup would be placed in debug mode and given
the address anything.umd.edu. The query will probably fail but the 
debugging information returned will include the namesever addresses
associated with the domain.                                            

A listing of hosts by domain can be obtained from nslookup by using the
"ls <domain>" command where domain is the domain associated with the
nameserver.
                                                                       
Bitnet users with no direct access to nslookup can still get the basic
nslookup information by sending mail to nslookup@sh.cs.net. Domain style
addresses can be placed in the body of the message, one per line, and
mail will be returned listing all the nameserver records for the named
domains. 
	                                                              

III.UUCP. The uucp software developed for Unix systems has been used to
create a wide-area network. This network is even less centralized than
the internet. Access to this network is gained by running uucp and
getting dial-up access to another host already on the network. There are
no official requirements for membership and hosts can join or leave the
network in an unobtrusive fashion. This informality frequently produces
problems with addressing.  The Uucp project was created to deal with
these problems. "Official" uucp hosts register their name with the Uucp
project at host uunet. Maps of the uucp network are available from uunet
and can be used by software named Pathalias to route information between
uucp hosts. Formerly, users had to specify the entire route in a so
called "bang style" address. A  "bang style" address looks like
hosta!hostb!hostc!username. A mail message sent with this address would
travel to hosta, then to hostb and finally to hostc.

Users connected to the uucp network rarely have to specify routing
information in the E-mail address. Pathalias usually handles the
routing. Occasionally, however, some problem will arise where some
routing information must be obtained, such as fixing a garbled return
address. In addition, since uucp hosts can have a domain style name,
it is sometimes neccessary to determine whether a host is really a
uucp host, or whether it's an internet host.

Interactive information about a UUCP host can be obtained by sending an
interactive Bitnet command of the following form:                       

$ send/command psuvax1 uuhosts  <uucp-host-name>

SM RSCS CMD PSUVAX1 uuhosts  <uucp-host-name>

Information about the path to the host can similarly be obtained by:

$ send/command  psuvax1 uupath <uucp-host-name>

SM RSCS CMD PSUVAX1 uupath <uucp-host-name>

The UUCP maps can be examined to get items like the postmaster address,
mailing address, etc. The maps are posted in the USENET group
comp.mail.maps and must be unpacked or uncompressed. These maps are also 
available for anonymous FTP from uunet.uu.net in directory uumap. 
                                                                               
IV. Info-nets. Info-nets is a mailing list that provides information
about addresses, location of users and gateways, and similar matters.
Questions can be sent to the list and experienced members of the list
will attempt to provide answers. The list can be subscribed to by
sending a subscription request to info-nets-requests@think.com.
Questions are addressed to info-nets@think.com. Questions that include
as much information as possible, such as full headers of bounced mail
messages, etc. are most likely to be answered. Archives of info-nets
questions and answers are kept on some Bitnet servers, such as the one
at Bitnic. Users can request these files using the interactive netserv
or  listserv commands outlined in the beginning of this document. A list
of the archives can be obtained with the interactive command:
                                                                    
$ send  listserv@Bitnic get notebook filelist

tell listserv at bitnic get notebook filelist

This returns a list of all the archive files stored on Bitnic. Each
archive or notebook is named infonets logXXXX where XXXX is a date like
8909. For example, the infonets archive for September 1989 can be
obtained with the interactive command:
                                                                   
$ send listserv@Bitnic get infonets log8909

tell listserv at Bitnic get infonets log8909  

In addition, the archives can be searched using the database server at
Bitnic. A text search for the string china would be formatted as
follows:

$ send  database@Bitnic find text China (in infonets

tell listserv at Bitnic find text China (in infonets


Remember, internet hosts without direct Bitnet access can send mail
commands to database. To do this they must register with database and
receive a password. This procedure, as well as general database help, is
provided by sending mail to database@Bitnic with the command
"help" in the first line of text. The listserv database server, Ldbase,
can be also be accessed via E-mail (see section  I.3.) and used to search
infonets archives.

V. Further information. Several books have recently been published which
provide information about networks, gateways, addresses and network
resources. They are listed below.
     
The Matrix:  Computer Networks and Conferencing Systems Worldwide
by John S. Quarterman, Digital Press, 1989.     
     
Users' Directory of Computer Networks
by Tracy Lynn LaQuey, Digital Press, 1989.
     
A Guide to Electronic Mail Networks and Addressing
by Donnalyn Frey and Rick Adams, O'Reilly & Associates, 1989.
     




