class_ip.rst 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. :github_url: hide
  2. .. meta::
  3. :keywords: dns
  4. .. DO NOT EDIT THIS FILE!!!
  5. .. Generated automatically from Godot engine sources.
  6. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  7. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/IP.xml.
  8. .. _class_IP:
  9. IP
  10. ==
  11. **Inherits:** :ref:`Object<class_Object>`
  12. Internet protocol (IP) support functions such as DNS resolution.
  13. .. rst-class:: classref-introduction-group
  14. Description
  15. -----------
  16. IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see :ref:`StreamPeerTCP<class_StreamPeerTCP>` and :ref:`TCPServer<class_TCPServer>`). IP provides DNS hostname resolution support, both blocking and threaded.
  17. .. rst-class:: classref-reftable-group
  18. Methods
  19. -------
  20. .. table::
  21. :widths: auto
  22. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | |void| | :ref:`clear_cache<class_IP_method_clear_cache>`\ (\ hostname\: :ref:`String<class_String>` = ""\ ) |
  24. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | |void| | :ref:`erase_resolve_item<class_IP_method_erase_resolve_item>`\ (\ id\: :ref:`int<class_int>`\ ) |
  26. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_local_addresses<class_IP_method_get_local_addresses>`\ (\ ) |const| |
  28. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | :ref:`Array<class_Array>`\[:ref:`Dictionary<class_Dictionary>`\] | :ref:`get_local_interfaces<class_IP_method_get_local_interfaces>`\ (\ ) |const| |
  30. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`String<class_String>` | :ref:`get_resolve_item_address<class_IP_method_get_resolve_item_address>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
  32. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | :ref:`Array<class_Array>` | :ref:`get_resolve_item_addresses<class_IP_method_get_resolve_item_addresses>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
  34. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | :ref:`ResolverStatus<enum_IP_ResolverStatus>` | :ref:`get_resolve_item_status<class_IP_method_get_resolve_item_status>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
  36. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | :ref:`String<class_String>` | :ref:`resolve_hostname<class_IP_method_resolve_hostname>`\ (\ host\: :ref:`String<class_String>`, ip_type\: :ref:`Type<enum_IP_Type>` = 3\ ) |
  38. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`resolve_hostname_addresses<class_IP_method_resolve_hostname_addresses>`\ (\ host\: :ref:`String<class_String>`, ip_type\: :ref:`Type<enum_IP_Type>` = 3\ ) |
  40. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | :ref:`int<class_int>` | :ref:`resolve_hostname_queue_item<class_IP_method_resolve_hostname_queue_item>`\ (\ host\: :ref:`String<class_String>`, ip_type\: :ref:`Type<enum_IP_Type>` = 3\ ) |
  42. +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. .. rst-class:: classref-section-separator
  44. ----
  45. .. rst-class:: classref-descriptions-group
  46. Enumerations
  47. ------------
  48. .. _enum_IP_ResolverStatus:
  49. .. rst-class:: classref-enumeration
  50. enum **ResolverStatus**: :ref:`🔗<enum_IP_ResolverStatus>`
  51. .. _class_IP_constant_RESOLVER_STATUS_NONE:
  52. .. rst-class:: classref-enumeration-constant
  53. :ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_NONE** = ``0``
  54. DNS hostname resolver status: No status.
  55. .. _class_IP_constant_RESOLVER_STATUS_WAITING:
  56. .. rst-class:: classref-enumeration-constant
  57. :ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_WAITING** = ``1``
  58. DNS hostname resolver status: Waiting.
  59. .. _class_IP_constant_RESOLVER_STATUS_DONE:
  60. .. rst-class:: classref-enumeration-constant
  61. :ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_DONE** = ``2``
  62. DNS hostname resolver status: Done.
  63. .. _class_IP_constant_RESOLVER_STATUS_ERROR:
  64. .. rst-class:: classref-enumeration-constant
  65. :ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_ERROR** = ``3``
  66. DNS hostname resolver status: Error.
  67. .. rst-class:: classref-item-separator
  68. ----
  69. .. _enum_IP_Type:
  70. .. rst-class:: classref-enumeration
  71. enum **Type**: :ref:`🔗<enum_IP_Type>`
  72. .. _class_IP_constant_TYPE_NONE:
  73. .. rst-class:: classref-enumeration-constant
  74. :ref:`Type<enum_IP_Type>` **TYPE_NONE** = ``0``
  75. Address type: None.
  76. .. _class_IP_constant_TYPE_IPV4:
  77. .. rst-class:: classref-enumeration-constant
  78. :ref:`Type<enum_IP_Type>` **TYPE_IPV4** = ``1``
  79. Address type: Internet protocol version 4 (IPv4).
  80. .. _class_IP_constant_TYPE_IPV6:
  81. .. rst-class:: classref-enumeration-constant
  82. :ref:`Type<enum_IP_Type>` **TYPE_IPV6** = ``2``
  83. Address type: Internet protocol version 6 (IPv6).
  84. .. _class_IP_constant_TYPE_ANY:
  85. .. rst-class:: classref-enumeration-constant
  86. :ref:`Type<enum_IP_Type>` **TYPE_ANY** = ``3``
  87. Address type: Any.
  88. .. rst-class:: classref-section-separator
  89. ----
  90. .. rst-class:: classref-descriptions-group
  91. Constants
  92. ---------
  93. .. _class_IP_constant_RESOLVER_MAX_QUERIES:
  94. .. rst-class:: classref-constant
  95. **RESOLVER_MAX_QUERIES** = ``256`` :ref:`🔗<class_IP_constant_RESOLVER_MAX_QUERIES>`
  96. Maximum number of concurrent DNS resolver queries allowed, :ref:`RESOLVER_INVALID_ID<class_IP_constant_RESOLVER_INVALID_ID>` is returned if exceeded.
  97. .. _class_IP_constant_RESOLVER_INVALID_ID:
  98. .. rst-class:: classref-constant
  99. **RESOLVER_INVALID_ID** = ``-1`` :ref:`🔗<class_IP_constant_RESOLVER_INVALID_ID>`
  100. Invalid ID constant. Returned if :ref:`RESOLVER_MAX_QUERIES<class_IP_constant_RESOLVER_MAX_QUERIES>` is exceeded.
  101. .. rst-class:: classref-section-separator
  102. ----
  103. .. rst-class:: classref-descriptions-group
  104. Method Descriptions
  105. -------------------
  106. .. _class_IP_method_clear_cache:
  107. .. rst-class:: classref-method
  108. |void| **clear_cache**\ (\ hostname\: :ref:`String<class_String>` = ""\ ) :ref:`🔗<class_IP_method_clear_cache>`
  109. Removes all of a ``hostname``'s cached references. If no ``hostname`` is given, all cached IP addresses are removed.
  110. .. rst-class:: classref-item-separator
  111. ----
  112. .. _class_IP_method_erase_resolve_item:
  113. .. rst-class:: classref-method
  114. |void| **erase_resolve_item**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_IP_method_erase_resolve_item>`
  115. Removes a given item ``id`` from the queue. This should be used to free a queue after it has completed to enable more queries to happen.
  116. .. rst-class:: classref-item-separator
  117. ----
  118. .. _class_IP_method_get_local_addresses:
  119. .. rst-class:: classref-method
  120. :ref:`PackedStringArray<class_PackedStringArray>` **get_local_addresses**\ (\ ) |const| :ref:`🔗<class_IP_method_get_local_addresses>`
  121. Returns all the user's current IPv4 and IPv6 addresses as an array.
  122. .. rst-class:: classref-item-separator
  123. ----
  124. .. _class_IP_method_get_local_interfaces:
  125. .. rst-class:: classref-method
  126. :ref:`Array<class_Array>`\[:ref:`Dictionary<class_Dictionary>`\] **get_local_interfaces**\ (\ ) |const| :ref:`🔗<class_IP_method_get_local_interfaces>`
  127. Returns all network adapters as an array.
  128. Each adapter is a dictionary of the form:
  129. ::
  130. {
  131. "index": "1", # Interface index.
  132. "name": "eth0", # Interface name.
  133. "friendly": "Ethernet One", # A friendly name (might be empty).
  134. "addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface.
  135. }
  136. .. rst-class:: classref-item-separator
  137. ----
  138. .. _class_IP_method_get_resolve_item_address:
  139. .. rst-class:: classref-method
  140. :ref:`String<class_String>` **get_resolve_item_address**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_IP_method_get_resolve_item_address>`
  141. Returns a queued hostname's IP address, given its queue ``id``. Returns an empty string on error or if resolution hasn't happened yet (see :ref:`get_resolve_item_status<class_IP_method_get_resolve_item_status>`).
  142. .. rst-class:: classref-item-separator
  143. ----
  144. .. _class_IP_method_get_resolve_item_addresses:
  145. .. rst-class:: classref-method
  146. :ref:`Array<class_Array>` **get_resolve_item_addresses**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_IP_method_get_resolve_item_addresses>`
  147. Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see :ref:`get_resolve_item_status<class_IP_method_get_resolve_item_status>`).
  148. .. rst-class:: classref-item-separator
  149. ----
  150. .. _class_IP_method_get_resolve_item_status:
  151. .. rst-class:: classref-method
  152. :ref:`ResolverStatus<enum_IP_ResolverStatus>` **get_resolve_item_status**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_IP_method_get_resolve_item_status>`
  153. Returns a queued hostname's status as a :ref:`ResolverStatus<enum_IP_ResolverStatus>` constant, given its queue ``id``.
  154. .. rst-class:: classref-item-separator
  155. ----
  156. .. _class_IP_method_resolve_hostname:
  157. .. rst-class:: classref-method
  158. :ref:`String<class_String>` **resolve_hostname**\ (\ host\: :ref:`String<class_String>`, ip_type\: :ref:`Type<enum_IP_Type>` = 3\ ) :ref:`🔗<class_IP_method_resolve_hostname>`
  159. Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the :ref:`Type<enum_IP_Type>` constant given as ``ip_type``.
  160. .. rst-class:: classref-item-separator
  161. ----
  162. .. _class_IP_method_resolve_hostname_addresses:
  163. .. rst-class:: classref-method
  164. :ref:`PackedStringArray<class_PackedStringArray>` **resolve_hostname_addresses**\ (\ host\: :ref:`String<class_String>`, ip_type\: :ref:`Type<enum_IP_Type>` = 3\ ) :ref:`🔗<class_IP_method_resolve_hostname_addresses>`
  165. Resolves a given hostname in a blocking way. Addresses are returned as an :ref:`Array<class_Array>` of IPv4 or IPv6 addresses depending on ``ip_type``.
  166. .. rst-class:: classref-item-separator
  167. ----
  168. .. _class_IP_method_resolve_hostname_queue_item:
  169. .. rst-class:: classref-method
  170. :ref:`int<class_int>` **resolve_hostname_queue_item**\ (\ host\: :ref:`String<class_String>`, ip_type\: :ref:`Type<enum_IP_Type>` = 3\ ) :ref:`🔗<class_IP_method_resolve_hostname_queue_item>`
  171. Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the :ref:`Type<enum_IP_Type>` constant given as ``ip_type``. Returns the queue ID if successful, or :ref:`RESOLVER_INVALID_ID<class_IP_constant_RESOLVER_INVALID_ID>` on error.
  172. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  173. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  174. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  175. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  176. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  177. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  178. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  179. .. |void| replace:: :abbr:`void (No return value.)`