2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2024-02-22 01:51:08 +08:00
<class name= "IP" inherits= "Object" keywords= "dns" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-13 04:42:36 +08:00
<brief_description >
2019-06-22 07:04:47 +08:00
Internet protocol (IP) support functions such as DNS resolution.
2017-09-13 04:42:36 +08:00
</brief_description>
<description >
2021-05-06 08:48:18 +08:00
IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see [StreamPeerTCP] and [TCPServer]). IP provides DNS hostname resolution support, both blocking and threaded.
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "clear_cache" >
2021-07-30 21:28:05 +08:00
<return type= "void" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "hostname" type= "String" default= """" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-12 21:36:48 +08:00
Removes all of a [param hostname]'s cached references. If no [param hostname] is given, all cached IP addresses are removed.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "erase_resolve_item" >
2021-07-30 21:28:05 +08:00
<return type= "void" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "id" type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-12 21:36:48 +08:00
Removes a given item [param id] from the queue. This should be used to free a queue after it has completed to enable more queries to happen.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_local_addresses" qualifiers= "const" >
2022-08-06 02:35:08 +08:00
<return type= "PackedStringArray" />
2017-09-13 04:42:36 +08:00
<description >
2021-03-18 19:04:28 +08:00
Returns all the user's current IPv4 and IPv6 addresses as an array.
2017-09-13 04:42:36 +08:00
</description>
</method>
2019-05-07 16:17:00 +08:00
<method name= "get_local_interfaces" qualifiers= "const" >
2022-08-06 02:35:08 +08:00
<return type= "Dictionary[]" />
2019-05-07 16:17:00 +08:00
<description >
Returns all network adapters as an array.
Each adapter is a dictionary of the form:
[codeblock]
{
"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.
}
[/codeblock]
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "get_resolve_item_address" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "id" type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-12 21:36:48 +08:00
Returns a queued hostname's IP address, given its queue [param id]. Returns an empty string on error or if resolution hasn't happened yet (see [method get_resolve_item_status]).
2017-09-13 04:42:36 +08:00
</description>
</method>
2021-05-24 21:14:51 +08:00
<method name= "get_resolve_item_addresses" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "Array" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "id" type= "int" />
2021-05-24 21:14:51 +08:00
<description >
Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see [method get_resolve_item_status]).
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "get_resolve_item_status" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "int" enum= "IP.ResolverStatus" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "id" type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-12 21:36:48 +08:00
Returns a queued hostname's status as a [enum ResolverStatus] constant, given its queue [param id].
2017-09-13 04:42:36 +08:00
</description>
</method>
2024-02-22 01:51:08 +08:00
<method name= "resolve_hostname" keywords= "dns" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "host" type= "String" />
<param index= "1" name= "ip_type" type= "int" enum= "IP.Type" default= "3" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-12 21:36:48 +08:00
Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the [enum Type] constant given as [param ip_type].
2017-09-13 04:42:36 +08:00
</description>
</method>
2021-05-24 21:14:51 +08:00
<method name= "resolve_hostname_addresses" >
2022-08-06 02:35:08 +08:00
<return type= "PackedStringArray" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "host" type= "String" />
<param index= "1" name= "ip_type" type= "int" enum= "IP.Type" default= "3" />
2021-05-24 21:14:51 +08:00
<description >
2022-08-12 21:36:48 +08:00
Resolves a given hostname in a blocking way. Addresses are returned as an [Array] of IPv4 or IPv6 addresses depending on [param ip_type].
2021-05-24 21:14:51 +08:00
</description>
</method>
2017-09-13 04:42:36 +08:00
<method name= "resolve_hostname_queue_item" >
2021-07-30 21:28:05 +08:00
<return type= "int" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "host" type= "String" />
<param index= "1" name= "ip_type" type= "int" enum= "IP.Type" default= "3" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-12 21:36:48 +08:00
Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the [enum Type] constant given as [param ip_type]. Returns the queue ID if successful, or [constant RESOLVER_INVALID_ID] on error.
2017-09-13 04:42:36 +08:00
</description>
</method>
</methods>
<constants >
2017-11-25 06:16:30 +08:00
<constant name= "RESOLVER_STATUS_NONE" value= "0" enum= "ResolverStatus" >
2017-12-11 04:13:27 +08:00
DNS hostname resolver status: No status.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "RESOLVER_STATUS_WAITING" value= "1" enum= "ResolverStatus" >
2017-12-11 04:13:27 +08:00
DNS hostname resolver status: Waiting.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "RESOLVER_STATUS_DONE" value= "2" enum= "ResolverStatus" >
2017-12-11 04:13:27 +08:00
DNS hostname resolver status: Done.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "RESOLVER_STATUS_ERROR" value= "3" enum= "ResolverStatus" >
2017-12-11 04:13:27 +08:00
DNS hostname resolver status: Error.
2017-09-13 04:42:36 +08:00
</constant>
2022-03-24 00:07:17 +08:00
<constant name= "RESOLVER_MAX_QUERIES" value= "256" >
2019-06-27 18:34:26 +08:00
Maximum number of concurrent DNS resolver queries allowed, [constant RESOLVER_INVALID_ID] is returned if exceeded.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "RESOLVER_INVALID_ID" value= "-1" >
2019-06-27 18:34:26 +08:00
Invalid ID constant. Returned if [constant RESOLVER_MAX_QUERIES] is exceeded.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TYPE_NONE" value= "0" enum= "Type" >
2017-12-11 04:13:27 +08:00
Address type: None.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TYPE_IPV4" value= "1" enum= "Type" >
2017-12-11 04:13:27 +08:00
Address type: Internet protocol version 4 (IPv4).
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TYPE_IPV6" value= "2" enum= "Type" >
2017-12-11 04:13:27 +08:00
Address type: Internet protocol version 6 (IPv6).
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "TYPE_ANY" value= "3" enum= "Type" >
2017-12-11 04:13:27 +08:00
Address type: Any.
2017-09-13 04:42:36 +08:00
</constant>
</constants>
</class>