This is an experimental implementation of a whois++ service being proposed by the IETF's WNILS (Whois and Network Information Lookup Service) Working Group. It uses a (Quipu 8.0 based) X.500 Directory Service as it's information source. The whois++ server communicates with the Directory via LDAP (Lightweight Directory Access Protocol), using the libraries developed by the University of Michigan. All user search queries are transformed into LDAP queries that are passed to the X.500 Directory service for resolution. For "normal" whois style queries we make a number of assumptions on the attributes of interest depending on the format of the query. If you only supply a single token it is assumed that you wish to search for a family name or userid. Multiple tokens imply a search on a full name (commonName in X.500-speak). We also support e-mail lookups as described in the original whois RFC (RFC954) however wildcard style searches may be constrained by the X.500 Directory service. Example queries a. ng => (|(sn=ng)(userid=ng)(l=ng)(ou=ng)(&(cn=ng)(!(objectClass=person)))) b. zhongyi li => (|(l=zhongyi li)(ou=zhongyi li)(preferredName=zhongyi li)\ (cn=*zhongyi * li)) c. mrp@ => (|(mail=mrp@*)(userid=mrp)) You can also use structured whois++ queries that specify the attribute to search as well as value. Searching using uncommon attributes attributes may be restricted by the X.500 Directory system.