Staging
v0.5.1
https://github.com/python/cpython
Revision a7891718e1293dc9afa1dacb77a59f1895611f75 authored by Barry Warsaw on 01 August 1996, 15:53:09 UTC, committed by Barry Warsaw on 01 August 1996, 15:53:09 UTC
right thing.

(py-comment-region): let-bind comment-start to "## " so commented
regions get transformed into non-indenting comment lines.

(py-compute-region): Implement modification to rule for recognizing
"indenting comment lines".
1 parent e5b7b85
Raw File
Tip revision: a7891718e1293dc9afa1dacb77a59f1895611f75 authored by Barry Warsaw on 01 August 1996, 15:53:09 UTC
(py-mode): comment-start is now "# " so indent-for-comment does the
Tip revision: a789171
libmacdnr.tex

\section{Built-in Module \sectcode{macdnr}}
\bimodindex{macdnr}

This module provides an interface to the Macintosh Domain Name
Resolver.  It is usually used in conjunction with the \var{mactcp}
module, to map hostnames to IP-addresses.  It may not be available in
all Mac Python versions.

The \code{macdnr} module defines the following functions:

\renewcommand{\indexsubitem}{(in module macdnr)}

\begin{funcdesc}{Open}{\optional{filename}}
Open the domain name resolver extension.  If \var{filename} is given it
should be the pathname of the extension, otherwise a default is
used.  Normally, this call is not needed since the other calls will
open the extension automatically.
\end{funcdesc}

\begin{funcdesc}{Close}{}
Close the resolver extension.  Again, not needed for normal use.
\end{funcdesc}

\begin{funcdesc}{StrToAddr}{hostname}
Look up the IP address for \var{hostname}.  This call returns a dnr
result object of the ``address'' variation.
\end{funcdesc}

\begin{funcdesc}{AddrToName}{addr}
Do a reverse lookup on the 32-bit integer IP-address
\var{addr}.  Returns a dnr result object of the ``address'' variation.
\end{funcdesc}

\begin{funcdesc}{AddrToStr}{addr}
Convert the 32-bit integer IP-address \var{addr} to a dotted-decimal
string.  Returns the string.
\end{funcdesc}

\begin{funcdesc}{HInfo}{hostname}
Query the nameservers for a \code{HInfo} record for host
\var{hostname}.  These records contain hardware and software
information about the machine in question (if they are available in
the first place).  Returns a dnr result object of the ``hinfo''
variety.
\end{funcdesc}

\begin{funcdesc}{MXInfo}{domain}
Query the nameservers for a mail exchanger for \var{domain}.  This is
the hostname of a host willing to accept SMTP mail for the given
domain.  Returns a dnr result object of the ``mx'' variety.
\end{funcdesc}

\subsection{dnr result object}

Since the DNR calls all execute asynchronously you do not get the
results back immediately.  Instead, you get a dnr result object.  You
can check this object to see whether the query is complete, and access
its attributes to obtain the information when it is.

Alternatively, you can also reference the result attributes directly,
this will result in an implicit wait for the query to complete.

The \var{rtnCode} and \var{cname} attributes are always available, the
others depend on the type of query (address, hinfo or mx).

\renewcommand{\indexsubitem}{(dnr result object method)}

% Add args, as in {arg1\, arg2 \optional{\, arg3}}
\begin{funcdesc}{wait}{}
Wait for the query to complete.
\end{funcdesc}

% Add args, as in {arg1\, arg2 \optional{\, arg3}}
\begin{funcdesc}{isdone}{}
Return 1 if the query is complete.
\end{funcdesc}

\renewcommand{\indexsubitem}{(dnr result object attribute)}

\begin{datadesc}{rtnCode}
The error code returned by the query.
\end{datadesc}

\begin{datadesc}{cname}
The canonical name of the host that was queried.
\end{datadesc}

\begin{datadesc}{ip0}
\dataline{ip1}
\dataline{ip2}
\dataline{ip3}
At most four integer IP addresses for this host.  Unused entries are
zero.  Valid only for address queries.
\end{datadesc}

\begin{datadesc}{cpuType}
\dataline{osType}
Textual strings giving the machine type an OS name.  Valid for hinfo
queries.
\end{datadesc}

\begin{datadesc}{exchange}
The name of a mail-exchanger host.  Valid for mx queries.
\end{datadesc}

\begin{datadesc}{preference}
The preference of this mx record.  Not too useful, since the Macintosh
will only return a single mx record.  Mx queries only.
\end{datadesc}

The simplest way to use the module to convert names to dotted-decimal
strings, without worrying about idle time, etc:
\begin{verbatim}
>>> def gethostname(name):
...     import macdnr
...     dnrr = macdnr.StrToAddr(name)
...     return macdnr.AddrToStr(dnrr.ip0)
\end{verbatim}
back to top