class_ip.rst 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the IP.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_IP:
  6. IP
  7. ==
  8. **Inherits:** :ref:`Object<class_Object>`
  9. **Inherited By:** :ref:`IP_Unix<class_IP_Unix>`
  10. **Category:** Core
  11. Brief Description
  12. -----------------
  13. Internet protocol (IP) support functions such as DNS resolution.
  14. Methods
  15. -------
  16. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | void | :ref:`clear_cache<class_IP_method_clear_cache>` **(** :ref:`String<class_String>` hostname="" **)** |
  18. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  19. | void | :ref:`erase_resolve_item<class_IP_method_erase_resolve_item>` **(** :ref:`int<class_int>` id **)** |
  20. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  21. | :ref:`Array<class_Array>` | :ref:`get_local_addresses<class_IP_method_get_local_addresses>` **(** **)** const |
  22. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | :ref:`Array<class_Array>` | :ref:`get_local_interfaces<class_IP_method_get_local_interfaces>` **(** **)** const |
  24. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | :ref:`String<class_String>` | :ref:`get_resolve_item_address<class_IP_method_get_resolve_item_address>` **(** :ref:`int<class_int>` id **)** const |
  26. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | :ref:`ResolverStatus<enum_IP_ResolverStatus>` | :ref:`get_resolve_item_status<class_IP_method_get_resolve_item_status>` **(** :ref:`int<class_int>` id **)** const |
  28. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | :ref:`String<class_String>` | :ref:`resolve_hostname<class_IP_method_resolve_hostname>` **(** :ref:`String<class_String>` host, :ref:`Type<enum_IP_Type>` ip_type=3 **)** |
  30. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`int<class_int>` | :ref:`resolve_hostname_queue_item<class_IP_method_resolve_hostname_queue_item>` **(** :ref:`String<class_String>` host, :ref:`Type<enum_IP_Type>` ip_type=3 **)** |
  32. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. Enumerations
  34. ------------
  35. .. _enum_IP_ResolverStatus:
  36. .. _class_IP_constant_RESOLVER_STATUS_NONE:
  37. .. _class_IP_constant_RESOLVER_STATUS_WAITING:
  38. .. _class_IP_constant_RESOLVER_STATUS_DONE:
  39. .. _class_IP_constant_RESOLVER_STATUS_ERROR:
  40. enum **ResolverStatus**:
  41. - **RESOLVER_STATUS_NONE** = **0** --- DNS hostname resolver status: No status.
  42. - **RESOLVER_STATUS_WAITING** = **1** --- DNS hostname resolver status: Waiting.
  43. - **RESOLVER_STATUS_DONE** = **2** --- DNS hostname resolver status: Done.
  44. - **RESOLVER_STATUS_ERROR** = **3** --- DNS hostname resolver status: Error.
  45. .. _enum_IP_Type:
  46. .. _class_IP_constant_TYPE_NONE:
  47. .. _class_IP_constant_TYPE_IPV4:
  48. .. _class_IP_constant_TYPE_IPV6:
  49. .. _class_IP_constant_TYPE_ANY:
  50. enum **Type**:
  51. - **TYPE_NONE** = **0** --- Address type: None.
  52. - **TYPE_IPV4** = **1** --- Address type: Internet protocol version 4 (IPv4).
  53. - **TYPE_IPV6** = **2** --- Address type: Internet protocol version 6 (IPv6).
  54. - **TYPE_ANY** = **3** --- Address type: Any.
  55. Constants
  56. ---------
  57. .. _class_IP_constant_RESOLVER_MAX_QUERIES:
  58. .. _class_IP_constant_RESOLVER_INVALID_ID:
  59. - **RESOLVER_MAX_QUERIES** = **32** --- Maximum number of concurrent DNS resolver queries allowed, :ref:`RESOLVER_INVALID_ID<class_IP_constant_RESOLVER_INVALID_ID>` is returned if exceeded.
  60. - **RESOLVER_INVALID_ID** = **-1** --- Invalid ID constant. Returned if :ref:`RESOLVER_MAX_QUERIES<class_IP_constant_RESOLVER_MAX_QUERIES>` is exceeded.
  61. Description
  62. -----------
  63. IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see :ref:`StreamPeerTCP<class_StreamPeerTCP>` and :ref:`TCP_Server<class_TCP_Server>`). IP provides DNS hostname resolution support, both blocking and threaded.
  64. Method Descriptions
  65. -------------------
  66. .. _class_IP_method_clear_cache:
  67. - void **clear_cache** **(** :ref:`String<class_String>` hostname="" **)**
  68. Removes all of a ``hostname``'s cached references. If no ``hostname`` is given, all cached IP addresses are removed.
  69. .. _class_IP_method_erase_resolve_item:
  70. - void **erase_resolve_item** **(** :ref:`int<class_int>` id **)**
  71. 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.
  72. .. _class_IP_method_get_local_addresses:
  73. - :ref:`Array<class_Array>` **get_local_addresses** **(** **)** const
  74. Returns all of the user's current IPv4 and IPv6 addresses as an array.
  75. .. _class_IP_method_get_local_interfaces:
  76. - :ref:`Array<class_Array>` **get_local_interfaces** **(** **)** const
  77. Returns all network adapters as an array.
  78. Each adapter is a dictionary of the form:
  79. ::
  80. {
  81. "index": "1", # Interface index.
  82. "name": "eth0", # Interface name.
  83. "friendly": "Ethernet One", # A friendly name (might be empty).
  84. "addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface.
  85. }
  86. .. _class_IP_method_get_resolve_item_address:
  87. - :ref:`String<class_String>` **get_resolve_item_address** **(** :ref:`int<class_int>` id **)** const
  88. 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>`).
  89. .. _class_IP_method_get_resolve_item_status:
  90. - :ref:`ResolverStatus<enum_IP_ResolverStatus>` **get_resolve_item_status** **(** :ref:`int<class_int>` id **)** const
  91. Returns a queued hostname's status as a ``RESOLVER_STATUS_*`` constant, given its queue ``id``.
  92. .. _class_IP_method_resolve_hostname:
  93. - :ref:`String<class_String>` **resolve_hostname** **(** :ref:`String<class_String>` host, :ref:`Type<enum_IP_Type>` ip_type=3 **)**
  94. Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the ``TYPE_*`` constant given as ``ip_type``.
  95. .. _class_IP_method_resolve_hostname_queue_item:
  96. - :ref:`int<class_int>` **resolve_hostname_queue_item** **(** :ref:`String<class_String>` host, :ref:`Type<enum_IP_Type>` ip_type=3 **)**
  97. Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the ``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.