github_url: | hide |
---|
Inherits: :ref:`Object<class_Object>`
Internet protocol (IP) support functions such as DNS resolution.
.. rst-class:: classref-introduction-group
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
.. rst-class:: classref-section-separator
.. rst-class:: classref-descriptions-group
.. rst-class:: classref-enumeration
enum ResolverStatus: :ref:`🔗<enum_IP_ResolverStatus>`
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` RESOLVER_STATUS_NONE = 0
DNS hostname resolver status: No status.
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` RESOLVER_STATUS_WAITING = 1
DNS hostname resolver status: Waiting.
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` RESOLVER_STATUS_DONE = 2
DNS hostname resolver status: Done.
.. rst-class:: classref-enumeration-constant
:ref:`ResolverStatus<enum_IP_ResolverStatus>` RESOLVER_STATUS_ERROR = 3
DNS hostname resolver status: Error.
.. rst-class:: classref-item-separator
.. rst-class:: classref-enumeration
enum Type: :ref:`🔗<enum_IP_Type>`
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` TYPE_NONE = 0
Address type: None.
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` TYPE_IPV4 = 1
Address type: Internet protocol version 4 (IPv4).
.. rst-class:: classref-enumeration-constant
:ref:`Type<enum_IP_Type>` TYPE_IPV6 = 2
Address type: Internet protocol version 6 (IPv6).
.. 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
.. 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.
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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
.. 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.