<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<meta name="description" content="LuaSocket: DNS support">
<meta name="keywords" content="Lua, LuaSocket, DNS, Network, Library, Support">
<title>LuaSocket: DNS support</title>
<link rel="stylesheet" href="reference.css" type="text/css">
</head>

<body>

<!-- header +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<div class=header>
<hr>
<center>
<table summary="LuaSocket logo">
<tr><td align=center><a href="http://www.lua.org">
<img width=128 height=128 border=0 alt="LuaSocket" src="luasocket.png">
</a></td></tr>
<tr><td align=center valign=top>Network support for the Lua language
</td></tr>
</table>
<p class=bar>
<a href="home.html">home</a> &middot;
<a href="home.html#download">download</a> &middot;
<a href="installation.html">installation</a> &middot;
<a href="introduction.html">introduction</a> &middot;
<a href="reference.html">reference</a> 
</p>
</center>
<hr>
</div>

<!-- dns ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<h2 id=dns>DNS</h2> 

<p>
Name resolution functions return <em>all</em> information obtained from the
resolver in a table of the form:
</p>

<blockquote><tt>
resolved = {<br>
&nbsp;&nbsp;name = <i>canonic-name</i>,<br>
&nbsp;&nbsp;alias = <i>alias-list</i>,<br>
&nbsp;&nbsp;ip = <i>ip-address-list</i><br>
}
</tt> </blockquote>

<p>
Note that the <tt>alias</tt> list can be empty.
</p>

<!-- gethostname ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class=name id=gethostname> 
socket.dns.<b>gethostname()</b>
</p>

<p class=description>
Returns the standard host name for the machine as a string. 
</p>

<!-- tohostname +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class=name id=tohostname> 
socket.dns.<b>tohostname(</b>address<b>)</b>
</p>

<p class=description>
Converts from IP address to host name.
</p>

<p class=parameters>
<tt>Address</tt> can  be an IP address  or host name. 
</p>

<p class=return>
The function returns a string  with the canonic host name of the given
<tt>address</tt>, followed  by a  table with  all  information returned  by
the  resolver.  In  case of error, the function returns <b><tt>nil</tt></b>
followed by an error message.  
</p>

<!-- toip +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<p class=name id=toip> 
socket.dns.<b>toip(</b>address<b>)</b>
</p>

<p class=description>
Converts from host name to IP address.
</p>

<p class=parameters>
<tt>Address</tt> can  be an IP address  or host name. 
</p>

<p class=return> 
Returns a string  with the first IP address  found for <tt>address</tt>,
followed  by a  table with  all  information returned  by the  resolver.
In  case of error, the function returns <b><tt>nil</tt></b> followed by an error
message. 
</p>

<!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

<div class=footer>
<hr>
<center>
<p class=bar>
<a href="home.html">home</a> &middot;
<a href="home.html#down">download</a> &middot;
<a href="installation.html">installation</a> &middot;
<a href="introduction.html">introduction</a> &middot;
<a href="reference.html">reference</a>
</p>
<p>
<small>
Last modified by Diego Nehab on <br>
Thu Apr 20 00:25:07 EDT 2006
</small>
</p>
</center>
</div>

</body>
</html>
