📄 dyndns -- update specifications - return codes.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0050)http://www.dyndns.com/developers/specs/return.html -->
<HTML lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>DynDNS -- Update Specifications - Return Codes</TITLE>
<META http-equiv=Content-Type content=text/html;charset=iso-8859-1>
<META
content="Dynamic Network Services, Inc. provides world-class DNS hosting and management services, domain registration, mail services, network monitoring, and web redirection. These services support static IP addresses, dynamic IP address and enhance Internet connections using dial-up modems, cable modems, DSL, and LANs. We have the most reliable, rock-solid DNS network and have a technical support department that is one of the best in the industry."
name=description>
<META
content="dynamic dns, dynamic, dns, dyndns, dns service, managed dns, network monitoring, monitoring, monitor, support, reliable, ddns, webhop, web redirection, url, cloaking, domain registration, custom, secondary, mywebhop, webhop, open source, b2b, p2p, file sharing, remote management, web server, mail, email, e-mail, mx, mailhop, email relay, email redirection, redirection, guaranteed dns uptime, recursive dns, dns sla, dns hosting, aaaa, loc, ptr, a, cname, srv, txt, dyndns.org"
name=keywords><LINK title=Web
href="DynDNS -- Update Specifications - Return Codes.files/dyndns.css"
type=text/css rel=stylesheet><LINK title=Print
href="DynDNS -- Update Specifications - Return Codes.files/dyndns-print.css"
type=text/css rel="alternate stylesheet"><LINK href="/favicon.ico"
type=image/x-icon rel=icon><LINK href="/favicon.ico" type=image/x-icon
rel="shortcut icon">
<SCRIPT src="DynDNS -- Update Specifications - Return Codes.files/urchin.js"
type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>_uacct = "UA-210032-4";urchinTracker();</SCRIPT>
<META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
<BODY id=dyndnsbody>
<DIV id=everything>
<DIV id=header><A href="http://www.dyndns.com/"><IMG
alt="DynDNS: Keep Connected"
src="DynDNS -- Update Specifications - Return Codes.files/dyndns.gif"></A> <!--htdig_noindex-->
<H1><A href="http://www.dyndns.com/">DynDNS</A></H1>
<DIV id=toplogin>
<FORM action=https://www.dyndns.com/developers/specs/return.html
method=post><INPUT type=hidden value=1 name=__login> <LABEL
for=top_username>User: <INPUT id=top_username size=14 name=username>
</LABEL><LABEL for=top_password>Pass: <INPUT id=top_password type=password
size=14 name=password> </LABEL><INPUT type=submit value=Login> </FORM>
<DIV id=toplogin-actions><A
href="https://www.dyndns.com/account/resetpass/">Lost Password?</A> - <A
href="https://www.dyndns.com/account/create.html">Create Account</A>
</DIV></DIV></DIV>
<DIV id=navcontainer>
<UL id=navlist>
<LI><A href="http://www.dyndns.com/about/">About</A>
<LI><A href="http://www.dyndns.com/services/">Services</A>
<LI><A href="http://www.dyndns.com/account/">Account</A>
<LI><A href="http://www.dyndns.com/support/">Support</A>
<LI><A href="http://www.dyndns.com/news/">News</A>
<LI class=last> </LI></UL></DIV><!--/htdig_noindex-->
<DIV id=secondaryNav>
<DIV id=sidenav>
<UL>
<LI class=title><A href="http://www.dyndns.com/developers/">Developers'
Connection</A>
<LI class=first><A href="http://www.dyndns.com/developers/specs/">DNS Update
API</A>
<LI class=second><A
href="http://www.dyndns.com/developers/specs/flowdiagram.html">Flow
Diagram</A>
<LI class=second><A
href="http://www.dyndns.com/developers/specs/detectip.html">Detect IP
Change</A>
<LI class=second><A
href="http://www.dyndns.com/developers/specs/syntax.html">Perform Update</A>
<LI class=second id=currentnav><A
href="http://www.dyndns.com/developers/specs/return.html">Process Return</A>
<LI class=second><A
href="http://www.dyndns.com/developers/specs/policies.html">Policies</A>
<LI class=second><A
href="http://www.dyndns.com/developers/specs/guidelines.html">Guidelines &
Notes</A>
<LI class=second><A
href="http://www.dyndns.com/developers/specs/blocks.html">Client Blocks</A>
<LI class=first><A href="http://www.dyndns.com/developers/certified/">DynDNS
Certified</A>
<LI class=first><A
href="http://www.dyndns.com/developers/privatelabel/">DynDNS Private Label</A>
<LI class=first><A href="http://www.dyndns.com/developers/listings/">My Client
Listings</A> </LI></UL></DIV>
<DIV id=searchBox>
<FORM action=/search/ method=post><INPUT type=hidden value=1 name=started>
<INPUT type=hidden value=1 name=page>
<H4>Search DynDNS</H4><INPUT size=15 name=words> <INPUT type=submit value=Search name=action> </FORM></DIV></DIV>
<DIV id=sidenav-content>
<H2>Return Codes</H2>
<P>When updating a hostname, the response to the <A
href="http://www.dyndns.com/developers/specs/syntax.html">update syntax</A> will
be one of the return codes. If there is an error, clients should communicate to
the user either a brief description of the problem that the return code
indicates. To make troubleshooting easier, generic error messages such as
"Unable to update" should not be used.</P>
<P>If updating multiple hostnames, hostname-specific return codes are given one
per line, in the same order as the hostnames were specified. Return codes
indicating a failure with the account or the system are given only once.</P>
<H3>Update Types</H3>
<H4>Successful Updates</H4>
<P>There is only one return code which indicates a successful update. A
<CODE>"good"</CODE> indicates that the update was successful and that the IP
address was changed in our system.</P>
<H4>No Change Updates</H4>
<P>A <CODE>"nochg"</CODE> indicates a successful update but the IP address or
other settings have not changed. The only acceptable situation where this
allowed is during client initialization when the host has already been set to
the same IP address. Users may also be given the option to "force" an update.
This can be used to verify the authentication credentials and the current IP
address.</P>
<P>As this is fairly infrequent, repeated instances of <CODE>"nochg"</CODE>
updates will result in the host being blocked. Users should not be allowed to
repeatedly force updates.</P>
<P>While it is not expected that the clients will prevent users from doing this,
the client itself should strenuously avoid performing updates which would result
in this return result.</P>
<H4>Fatal Updates</H4>
<P>Any failed update attempt is fatal which means that all further updates will
also fail until the user has taken some sort of corrective action. For this
reason, any failed update attempt should cause the client to be disabled until
the situation is correct and the client is manually re-enabled by the user.</P>
<P>Additionally, because the update may fail for a number of different reasons,
the client needs to provide some method of communicating with the user that the
update has failed and why. Some suggestions include:</P>
<UL>
<LI>Logging a message in the general log window for the router (assuming it
has one)
<LI>Logging a message to a log window specific to the DynDNS client
<LI>Generating an error message to an e-mail address configured by the user
<LI>Communicating to an external process running on the users desktop </LI></UL>
<P>Many of these errors involve configuration mistakes within the client or
inconsistencies between the client configuration and the user's account status;
in all of those cases, the client must <B>stop</B> updating until the user has
corrected the problem. Retrying the update automatically in those cases is abuse
and may result in <A
href="http://www.dyndns.com/developers/specs/blocks.html">client blocks</A>.</P>
<H3>Update Syntax Errors</H3>
<P>The codes below should never be returned except when developing a client.
They indicate a serious problem with the syntax of the update sent by the
client.</P>
<TABLE>
<TBODY>
<TR class=striped_odd>
<TH><CODE>badsys</CODE></TH>
<TD>The <CODE>system</CODE> parameter given is not valid. Valid system
parameters are <CODE>dyndns</CODE>, <CODE>statdns</CODE> and
<CODE>custom</CODE>.</TD></TD></TR>
<TR class=striped_even>
<TH><CODE>badagent</CODE></TH>
<TD>The user agent that was sent has been blocked for not following these
specifications, or no user agent was specified. </TD></TR></TBODY></TABLE>
<H3>Account-Related Errors</H3>
<P>The codes below indicate that the client is not configured correctly for the
user's account. These return codes are given just once. The client must stop
updating until the user confirms that the problem has been resolved.</P>
<TABLE>
<TBODY>
<TR class=striped_odd>
<TH><CODE>badauth</CODE></TH>
<TD>The username and password pair do not match a real user.</TD></TR>
<TR class=striped_even>
<TH><CODE>!donator</CODE></TH>
<TD>An option available only to credited users (such as offline URL) was
specified, but the user is not a credited user. If multiple hosts were
specified, only a single <CODE>!donator</CODE> will be
returned.</TD></TR></TBODY></TABLE>
<H3>Update Complete</H3>
<P>The codes below indicate that the update of a hostname was completed
successfully.</P>
<TABLE>
<TBODY>
<TR class=striped_odd>
<TH><CODE>good</CODE></TH>
<TD>The update was successful, and the hostname is now updated.</TD></TR>
<TR class=striped_even>
<TH><CODE>nochg</CODE></TH>
<TD>The update changed no settings, and is considered abusive. Additional
<CODE>nochg</CODE> updates will cause the hostname to become
blocked.</TD></TR></TBODY></TABLE>
<P>Note that, for confirmation purposes, <CODE>good</CODE> and
<CODE>nochg</CODE> messages will be followed by the IP address that the hostname
was updated to. This value will be separated from the return code by a
space.</P>
<H3>Hostname-Related Errors</H3>
<P>The codes below indicate a problem with a specific hostname. The client must
stop updating that hostname until the user confirms that the problem has been
resolved.</P>
<TABLE>
<TBODY>
<TR class=striped_odd>
<TH><CODE>notfqdn</CODE></TH>
<TD>The hostname specified is not a fully-qualified domain name (not in
the form hostname.dyndns.org or domain.com).</TD></TR>
<TR class=striped_even>
<TH><CODE>nohost</CODE></TH>
<TD>The hostname specified does not exist (or is not in the service
specified in the system parameter)</TD></TR>
<TR class=striped_odd>
<TH><CODE>!yours</CODE></TH>
<TD>The hostname specified exists, but not under the username
specified.</TD></TR>
<TR class=striped_even>
<TH><CODE>numhost</CODE></TH>
<TD>Too many or too few hosts found</TD></TR>
<TR class=striped_odd>
<TH><CODE>abuse</CODE></TH>
<TD>The hostname specified is blocked for update
abuse.</TD></TR></TBODY></TABLE>
<P>If no hostnames were specified, <CODE>notfqdn</CODE> will be returned
once.</P>
<H3>Server Error Conditions</H3>
<P>The codes below indicate server errors that will have to be investigated. The
client must stop updating and ask the user to contact support. The client must
not resume updating until the user confirms that the problem has been resolved,
or a minimum of 1 hour has passed.</P>
<TABLE>
<TBODY>
<TR class=striped_even>
<TH><CODE>dnserr</CODE></TH>
<TD>DNS error encountered</TD></TR>
<TR class=striped_odd>
<TH><CODE>911</CODE></TH>
<TD>There is a serious problem on our side, such as a database or DNS
server failure.</TD></TR></TBODY></TABLE>
<P>The return <CODE>dnserr</CODE> will be followed by a numeric packet ID which
should be reported to <A href="mailto:support@dyndns.com">DynDNS Support</A>
along with the error.</P></DIV><BR clear=all><!--htdig_noindex-->
<DIV id=footer>Copyright
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -