Zend_Validate-Hostname.xml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 14978 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.hostname">
  5. <title>Hostname</title>
  6. <para>
  7. Zend_Validate_Hostname erlaubt die Prüfung von Hostnamen mit einem Set von bekannten Spezifikationen.
  8. Es ist möglich drei verschiedene Typen von Hostnamen zu Prüfen: einen DNS Hostnamen (z.b. domain.com),
  9. IP Adressen (z.B. 1.2.3.4), und lokale Hostnamen (z.B. localhost). Standarmäßig werden nur DNS Hostnamen
  10. geprüft.
  11. </para>
  12. <para>
  13. <emphasis role="strong">Normale Verwendung</emphasis>
  14. </para>
  15. <para>
  16. Ein normales Beispiel der Verwendung ist anbei:
  17. <programlisting role="php"><![CDATA[
  18. $validator = new Zend_Validate_Hostname();
  19. if ($validator->isValid($hostname)) {
  20. // Hostname scheint gültig zu sein
  21. } else {
  22. // Hostname ist ungülig; Gründe dafür ausdrucken
  23. foreach ($validator->getMessages() as $message) {
  24. echo "$message\n";
  25. }
  26. }
  27. ]]>
  28. </programlisting>
  29. Das prüft den Hostnamen <code>$hostname</code> und wird einen Fehler über
  30. <code>$validator->getMessages()</code> mit einer nützlichen Fehlermeldung
  31. auswerfen.
  32. </para>
  33. <para>
  34. <emphasis role="strong">Verschiedene Typen von Hostnamen prüfen</emphasis>
  35. </para>
  36. <para>
  37. Es kann gewünscht sein auch IP Adressen, lokale Hostnamen, oder eine Kombination aller drei
  38. erlaubten Typen zu prüfen. Das kann gemacht werden durch die Übergabe eines Parameters an
  39. Zend_Validate_Hostname wenn dieser initialisiert wird. Der Parameter sollte ein Integer sein,
  40. welcher die Typen von Hostnamen auswählt die erlaubt sind. Hierfür können die
  41. Zend_Validate_Hostname Konstanten verwendet werden.
  42. </para>
  43. <para>
  44. Die Zend_Validate_Hostname Konstanten sind: <code>ALLOW_DNS</code> um nur DNS Hostnamen zu erlauben,
  45. <code>ALLOW_IP</code> um IP Adressen zu erlauben, <code>ALLOW_LOCAL</code> um lokale Hostnmaen zu erlauben,
  46. und <code>ALLOW_ALL</code> um alle drei Typen zu erlauben. Um nur IP Adressen zu prüfen kann das
  47. folgende Beispiel verwendet werden:
  48. <programlisting role="php"><![CDATA[
  49. $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_IP);
  50. if ($validator->isValid($hostname)) {
  51. // Hostname scheint gültig zu sein
  52. } else {
  53. // Hostname ist ungülig; Gründe dafür ausdrucken
  54. foreach ($validator->getMessages() as $message) {
  55. echo "$message\n";
  56. }
  57. }
  58. ]]>
  59. </programlisting>
  60. </para>
  61. <para>
  62. Genau wie die Verwendung von <code>ALLOW_ALL</code> alle Typen von Hostnamen akzeptiert,
  63. können diese Typen kombiniert werden um Kombinationen zu erlauben. Um zum Beispiel DNS
  64. und lokale Hostnamen zu akzeptieren muß das Zend_Validate_Hostname Objekt wie folgt
  65. initialisiert werden:
  66. <programlisting role="php"><![CDATA[
  67. $validator = new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS |
  68. Zend_Validate_Hostname::ALLOW_IP);
  69. ]]>
  70. </programlisting>
  71. </para>
  72. <para>
  73. <emphasis role="strong">Internationale Domain Namen prüfen</emphasis>
  74. </para>
  75. <para>
  76. Einige Länder Code Top Level Domains (ccTLDs), wie 'de' (Deutschland), unterstützen internationale
  77. Zeichen in Domain Namen. Diese sind als Internationale Domain Namen (IDN) bekannt. Diese Domains können
  78. mit Zend_Validate_Hostname geprüft werden, mit Hilfe von erweiterten Zeichen die im Prüfprozess
  79. verwendet werden.
  80. </para>
  81. <para>
  82. Zur Zeit beinhaltet die Liste der unterstützten ccTLDs:
  83. <itemizedlist>
  84. <listitem>
  85. <para>at (Österreich)</para>
  86. </listitem>
  87. <listitem>
  88. <para>ch (Schweiz)</para>
  89. </listitem>
  90. <listitem>
  91. <para>li (Liechtenstein)</para>
  92. </listitem>
  93. <listitem>
  94. <para>de (Deutschland)</para>
  95. </listitem>
  96. <listitem>
  97. <para>fi (Finnland)</para>
  98. </listitem>
  99. <listitem>
  100. <para>hu (Ungarn)</para>
  101. </listitem>
  102. <listitem>
  103. <para>no (Norwegen)</para>
  104. </listitem>
  105. <listitem>
  106. <para>se (Schweden)</para>
  107. </listitem>
  108. </itemizedlist>
  109. </para>
  110. <para>
  111. Eine IDN Domain zu prüfen ist genauso einfach wie die Verwendung des standard Hostnamen Prüfers
  112. da IDN Prüfung standardmäßig eingeschaltet ist. Wenn IDN Prüfung ausgeschaltet werden soll, kann das
  113. entweder durch die Übergabe eines Parameters im Zend_Validate_Hostname Konstruktor, oder über die
  114. <code>$validator->setValidateIdn()</code> Methode gemacht werden.
  115. </para>
  116. <para>
  117. Die IDN Prüfung kann ausgeschaltet werden durch die Übergabe eines zweiten Parameters an den
  118. Zend_Validate_Hostname Konstruktor auf die folgende Art und Weise.
  119. <programlisting role="php"><![CDATA[
  120. $validator =
  121. new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS, false);
  122. ]]>
  123. </programlisting>
  124. Alternativ kann entweder TRUE oder FALSE an <code>$validator->setValidateIdn()</code> übergeben werden,
  125. um die IDN Prüfung ein- oder auszuschalten.
  126. Wenn ein IDN Hostname geprüft wird, der aktuell nicht unterstützt wird, ist es sicher das die Prüfung
  127. fehlschlagen wird wenn er irgendwelche internationalen Zeichen hat. Wo keine ccTLD Datei in
  128. Zend/Validate/Hostname existiert, welche die zusätzlichen Zeichen definiert, wird eine normale
  129. Hostnamen Prüfung durchgeführt.
  130. </para>
  131. <para>
  132. Es sollte beachtet werden das IDNs nur geprüft werden wenn es erlaubt ist DNS Hostnamen zu prüfen.
  133. </para>
  134. <para>
  135. <emphasis role="strong">Top Leven Domains prüfen</emphasis>
  136. </para>
  137. <para>
  138. Normalerweise wird ein Hostname gegen eine Liste von bekannten TLDs geprüft. Wenn diese Funktionalität
  139. nicht benötigt wird kann das, auf die gleiche Art und Weise wie die IDN Unterstützung, ausgeschaltet werden
  140. Die TLD Prüfung kann ausgeschaltet werden indem ein dritter Parameter an den Zend_Validate_Hostname
  141. Konstruktor übergeben wird. Im folgenden Beispiel wird die IDN Prüfung durch den zweiten Parameter unterstützt.
  142. <programlisting role="php"><![CDATA[
  143. $validator =
  144. new Zend_Validate_Hostname(Zend_Validate_Hostname::ALLOW_DNS,
  145. true,
  146. false);
  147. ]]>
  148. </programlisting>
  149. Alternativ kann entweder TRUE oder FALSE übergeben an <code>$validator->setValidateTld()</code>
  150. übergeben werden um die TLD Prüfung ein- oder auszuschalten.
  151. </para>
  152. <para>
  153. Es sollte beachtet werden das TLDs nur geprüft werden wenn es erlaubt ist DNS Hostnamen zu prüfen.
  154. </para>
  155. </sect2>
  156. <!--
  157. vim:se ts=4 sw=4 et:
  158. -->