Files
godot-docs/classes/class_ip.rst
2024-05-31 13:54:35 +00:00

315 lines
14 KiB
ReStructuredText

:github_url: hide
.. meta::
:keywords: dns
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/IP.xml.
.. _class_IP:
IP
==
**Inherits:** :ref:`Object<class_Object>`
Internet protocol (IP) support functions such as DNS resolution.
.. rst-class:: classref-introduction-group
Description
-----------
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.
.. rst-class:: classref-reftable-group
Methods
-------
.. table::
:widths: auto
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_cache<class_IP_method_clear_cache>`\ (\ hostname\: :ref:`String<class_String>` = ""\ ) |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`erase_resolve_item<class_IP_method_erase_resolve_item>`\ (\ id\: :ref:`int<class_int>`\ ) |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`get_local_addresses<class_IP_method_get_local_addresses>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`Dictionary<class_Dictionary>`\] | :ref:`get_local_interfaces<class_IP_method_get_local_interfaces>`\ (\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_resolve_item_address<class_IP_method_get_resolve_item_address>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`get_resolve_item_addresses<class_IP_method_get_resolve_item_addresses>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`ResolverStatus<enum_IP_ResolverStatus>` | :ref:`get_resolve_item_status<class_IP_method_get_resolve_item_status>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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\ ) |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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\ ) |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :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\ ) |
+------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Enumerations
------------
.. _enum_IP_ResolverStatus:
.. rst-class:: classref-enumeration
enum **ResolverStatus**: :ref:`🔗<enum_IP_ResolverStatus>`
.. _class_IP_constant_RESOLVER_STATUS_NONE:
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_NONE** = ``0``
DNS hostname resolver status: No status.
.. _class_IP_constant_RESOLVER_STATUS_WAITING:
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_WAITING** = ``1``
DNS hostname resolver status: Waiting.
.. _class_IP_constant_RESOLVER_STATUS_DONE:
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_DONE** = ``2``
DNS hostname resolver status: Done.
.. _class_IP_constant_RESOLVER_STATUS_ERROR:
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` **RESOLVER_STATUS_ERROR** = ``3``
DNS hostname resolver status: Error.
.. rst-class:: classref-item-separator
----
.. _enum_IP_Type:
.. rst-class:: classref-enumeration
enum **Type**: :ref:`🔗<enum_IP_Type>`
.. _class_IP_constant_TYPE_NONE:
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` **TYPE_NONE** = ``0``
Address type: None.
.. _class_IP_constant_TYPE_IPV4:
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` **TYPE_IPV4** = ``1``
Address type: Internet protocol version 4 (IPv4).
.. _class_IP_constant_TYPE_IPV6:
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` **TYPE_IPV6** = ``2``
Address type: Internet protocol version 6 (IPv6).
.. _class_IP_constant_TYPE_ANY:
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` **TYPE_ANY** = ``3``
Address type: Any.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Constants
---------
.. _class_IP_constant_RESOLVER_MAX_QUERIES:
.. rst-class:: classref-constant
**RESOLVER_MAX_QUERIES** = ``256`` :ref:`🔗<class_IP_constant_RESOLVER_MAX_QUERIES>`
Maximum number of concurrent DNS resolver queries allowed, :ref:`RESOLVER_INVALID_ID<class_IP_constant_RESOLVER_INVALID_ID>` is returned if exceeded.
.. _class_IP_constant_RESOLVER_INVALID_ID:
.. rst-class:: classref-constant
**RESOLVER_INVALID_ID** = ``-1`` :ref:`🔗<class_IP_constant_RESOLVER_INVALID_ID>`
Invalid ID constant. Returned if :ref:`RESOLVER_MAX_QUERIES<class_IP_constant_RESOLVER_MAX_QUERIES>` is exceeded.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Method Descriptions
-------------------
.. _class_IP_method_clear_cache:
.. rst-class:: classref-method
|void| **clear_cache**\ (\ hostname\: :ref:`String<class_String>` = ""\ ) :ref:`🔗<class_IP_method_clear_cache>`
Removes all of a ``hostname``'s cached references. If no ``hostname`` is given, all cached IP addresses are removed.
.. rst-class:: classref-item-separator
----
.. _class_IP_method_erase_resolve_item:
.. rst-class:: classref-method
|void| **erase_resolve_item**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_IP_method_erase_resolve_item>`
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.
.. rst-class:: classref-item-separator
----
.. _class_IP_method_get_local_addresses:
.. rst-class:: classref-method
:ref:`PackedStringArray<class_PackedStringArray>` **get_local_addresses**\ (\ ) |const| :ref:`🔗<class_IP_method_get_local_addresses>`
Returns all the user's current IPv4 and IPv6 addresses as an array.
.. rst-class:: classref-item-separator
----
.. _class_IP_method_get_local_interfaces:
.. rst-class:: classref-method
:ref:`Array<class_Array>`\[:ref:`Dictionary<class_Dictionary>`\] **get_local_interfaces**\ (\ ) |const| :ref:`🔗<class_IP_method_get_local_interfaces>`
Returns all network adapters as an array.
Each adapter is a dictionary of the form:
::
{
"index": "1", # Interface index.
"name": "eth0", # Interface name.
"friendly": "Ethernet One", # A friendly name (might be empty).
"addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface.
}
.. rst-class:: classref-item-separator
----
.. _class_IP_method_get_resolve_item_address:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_resolve_item_address**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_IP_method_get_resolve_item_address>`
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>`).
.. rst-class:: classref-item-separator
----
.. _class_IP_method_get_resolve_item_addresses:
.. rst-class:: classref-method
:ref:`Array<class_Array>` **get_resolve_item_addresses**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_IP_method_get_resolve_item_addresses>`
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>`).
.. rst-class:: classref-item-separator
----
.. _class_IP_method_get_resolve_item_status:
.. rst-class:: classref-method
:ref:`ResolverStatus<enum_IP_ResolverStatus>` **get_resolve_item_status**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_IP_method_get_resolve_item_status>`
Returns a queued hostname's status as a :ref:`ResolverStatus<enum_IP_ResolverStatus>` constant, given its queue ``id``.
.. rst-class:: classref-item-separator
----
.. _class_IP_method_resolve_hostname:
.. rst-class:: classref-method
: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>`
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``.
.. rst-class:: classref-item-separator
----
.. _class_IP_method_resolve_hostname_addresses:
.. rst-class:: classref-method
: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>`
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``.
.. rst-class:: classref-item-separator
----
.. _class_IP_method_resolve_hostname_queue_item:
.. rst-class:: classref-method
: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>`
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.
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
.. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
.. |void| replace:: :abbr:`void (No return value.)`