:github_url: hide .. meta:: :keywords: dns .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/4.3/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/4.3/doc/classes/IP.xml. .. _class_IP: IP == **Inherits:** :ref:`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` and :ref:`TCPServer`). IP provides DNS hostname resolution support, both blocking and threaded. .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear_cache`\ (\ hostname\: :ref:`String` = ""\ ) | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`erase_resolve_item`\ (\ id\: :ref:`int`\ ) | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`get_local_addresses`\ (\ ) |const| | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array`\[:ref:`Dictionary`\] | :ref:`get_local_interfaces`\ (\ ) |const| | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_resolve_item_address`\ (\ id\: :ref:`int`\ ) |const| | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`get_resolve_item_addresses`\ (\ id\: :ref:`int`\ ) |const| | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`ResolverStatus` | :ref:`get_resolve_item_status`\ (\ id\: :ref:`int`\ ) |const| | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`resolve_hostname`\ (\ host\: :ref:`String`, ip_type\: :ref:`Type` = 3\ ) | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`PackedStringArray` | :ref:`resolve_hostname_addresses`\ (\ host\: :ref:`String`, ip_type\: :ref:`Type` = 3\ ) | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`resolve_hostname_queue_item`\ (\ host\: :ref:`String`, ip_type\: :ref:`Type` = 3\ ) | +------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_IP_ResolverStatus: .. rst-class:: classref-enumeration enum **ResolverStatus**: :ref:`🔗` .. _class_IP_constant_RESOLVER_STATUS_NONE: .. rst-class:: classref-enumeration-constant :ref:`ResolverStatus` **RESOLVER_STATUS_NONE** = ``0`` DNS hostname resolver status: No status. .. _class_IP_constant_RESOLVER_STATUS_WAITING: .. rst-class:: classref-enumeration-constant :ref:`ResolverStatus` **RESOLVER_STATUS_WAITING** = ``1`` DNS hostname resolver status: Waiting. .. _class_IP_constant_RESOLVER_STATUS_DONE: .. rst-class:: classref-enumeration-constant :ref:`ResolverStatus` **RESOLVER_STATUS_DONE** = ``2`` DNS hostname resolver status: Done. .. _class_IP_constant_RESOLVER_STATUS_ERROR: .. rst-class:: classref-enumeration-constant :ref:`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:`🔗` .. _class_IP_constant_TYPE_NONE: .. rst-class:: classref-enumeration-constant :ref:`Type` **TYPE_NONE** = ``0`` Address type: None. .. _class_IP_constant_TYPE_IPV4: .. rst-class:: classref-enumeration-constant :ref:`Type` **TYPE_IPV4** = ``1`` Address type: Internet protocol version 4 (IPv4). .. _class_IP_constant_TYPE_IPV6: .. rst-class:: classref-enumeration-constant :ref:`Type` **TYPE_IPV6** = ``2`` Address type: Internet protocol version 6 (IPv6). .. _class_IP_constant_TYPE_ANY: .. rst-class:: classref-enumeration-constant :ref:`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:`🔗` Maximum number of concurrent DNS resolver queries allowed, :ref:`RESOLVER_INVALID_ID` is returned if exceeded. .. _class_IP_constant_RESOLVER_INVALID_ID: .. rst-class:: classref-constant **RESOLVER_INVALID_ID** = ``-1`` :ref:`🔗` Invalid ID constant. Returned if :ref:`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` = ""\ ) :ref:`🔗` 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`\ ) :ref:`🔗` 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` **get_local_addresses**\ (\ ) |const| :ref:`🔗` 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`\[:ref:`Dictionary`\] **get_local_interfaces**\ (\ ) |const| :ref:`🔗` 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` **get_resolve_item_address**\ (\ id\: :ref:`int`\ ) |const| :ref:`🔗` 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`). .. rst-class:: classref-item-separator ---- .. _class_IP_method_get_resolve_item_addresses: .. rst-class:: classref-method :ref:`Array` **get_resolve_item_addresses**\ (\ id\: :ref:`int`\ ) |const| :ref:`🔗` Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see :ref:`get_resolve_item_status`). .. rst-class:: classref-item-separator ---- .. _class_IP_method_get_resolve_item_status: .. rst-class:: classref-method :ref:`ResolverStatus` **get_resolve_item_status**\ (\ id\: :ref:`int`\ ) |const| :ref:`🔗` Returns a queued hostname's status as a :ref:`ResolverStatus` constant, given its queue ``id``. .. rst-class:: classref-item-separator ---- .. _class_IP_method_resolve_hostname: .. rst-class:: classref-method :ref:`String` **resolve_hostname**\ (\ host\: :ref:`String`, ip_type\: :ref:`Type` = 3\ ) :ref:`🔗` Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the :ref:`Type` constant given as ``ip_type``. .. rst-class:: classref-item-separator ---- .. _class_IP_method_resolve_hostname_addresses: .. rst-class:: classref-method :ref:`PackedStringArray` **resolve_hostname_addresses**\ (\ host\: :ref:`String`, ip_type\: :ref:`Type` = 3\ ) :ref:`🔗` Resolves a given hostname in a blocking way. Addresses are returned as an :ref:`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` **resolve_hostname_queue_item**\ (\ host\: :ref:`String`, ip_type\: :ref:`Type` = 3\ ) :ref:`🔗` Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the :ref:`Type` constant given as ``ip_type``. Returns the queue ID if successful, or :ref:`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.)`