mirror of
https://github.com/godotengine/godot
synced 2024-11-05 16:53:09 +00:00
dd8fa11ac1
Add two new functions to the IP class that returns all addresses/aliases associated with a given address.
This is a cherry-pick merge from 010a3433df
which was merged in 2.1, and has been updated to build with the latest code.
This merge adds two new methods IP.resolve_hostname_addresses and IP.get_resolve_item_addresses that returns a List of all addresses returned from the DNS request.
146 lines
5.6 KiB
XML
146 lines
5.6 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="IP" inherits="Object" version="4.0">
|
|
<brief_description>
|
|
Internet protocol (IP) support functions such as DNS resolution.
|
|
</brief_description>
|
|
<description>
|
|
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.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="clear_cache">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="hostname" type="String" default="""">
|
|
</argument>
|
|
<description>
|
|
Removes all of a [code]hostname[/code]'s cached references. If no [code]hostname[/code] is given, all cached IP addresses are removed.
|
|
</description>
|
|
</method>
|
|
<method name="erase_resolve_item">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Removes a given item [code]id[/code] from the queue. This should be used to free a queue after it has completed to enable more queries to happen.
|
|
</description>
|
|
</method>
|
|
<method name="get_local_addresses" qualifiers="const">
|
|
<return type="Array">
|
|
</return>
|
|
<description>
|
|
Returns all the user's current IPv4 and IPv6 addresses as an array.
|
|
</description>
|
|
</method>
|
|
<method name="get_local_interfaces" qualifiers="const">
|
|
<return type="Array">
|
|
</return>
|
|
<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>
|
|
<method name="get_resolve_item_address" qualifiers="const">
|
|
<return type="String">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns a queued hostname's IP address, given its queue [code]id[/code]. Returns an empty string on error or if resolution hasn't happened yet (see [method get_resolve_item_status]).
|
|
</description>
|
|
</method>
|
|
<method name="get_resolve_item_addresses" qualifiers="const">
|
|
<return type="Array">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<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>
|
|
<method name="get_resolve_item_status" qualifiers="const">
|
|
<return type="int" enum="IP.ResolverStatus">
|
|
</return>
|
|
<argument index="0" name="id" type="int">
|
|
</argument>
|
|
<description>
|
|
Returns a queued hostname's status as a [enum ResolverStatus] constant, given its queue [code]id[/code].
|
|
</description>
|
|
</method>
|
|
<method name="resolve_hostname">
|
|
<return type="String">
|
|
</return>
|
|
<argument index="0" name="host" type="String">
|
|
</argument>
|
|
<argument index="1" name="ip_type" type="int" enum="IP.Type" default="3">
|
|
</argument>
|
|
<description>
|
|
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 [code]ip_type[/code].
|
|
</description>
|
|
</method>
|
|
<method name="resolve_hostname_addresses">
|
|
<return type="Array">
|
|
</return>
|
|
<argument index="0" name="host" type="String">
|
|
</argument>
|
|
<argument index="1" name="ip_type" type="int" enum="IP.Type" default="3">
|
|
</argument>
|
|
<description>
|
|
Resolves a given hostname in a blocking way. Addresses are returned as an [Array] of IPv4 or IPv6 addresses depending on [code]ip_type[/code].
|
|
</description>
|
|
</method>
|
|
<method name="resolve_hostname_queue_item">
|
|
<return type="int">
|
|
</return>
|
|
<argument index="0" name="host" type="String">
|
|
</argument>
|
|
<argument index="1" name="ip_type" type="int" enum="IP.Type" default="3">
|
|
</argument>
|
|
<description>
|
|
Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the [enum Type] constant given as [code]ip_type[/code]. Returns the queue ID if successful, or [constant RESOLVER_INVALID_ID] on error.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<constants>
|
|
<constant name="RESOLVER_STATUS_NONE" value="0" enum="ResolverStatus">
|
|
DNS hostname resolver status: No status.
|
|
</constant>
|
|
<constant name="RESOLVER_STATUS_WAITING" value="1" enum="ResolverStatus">
|
|
DNS hostname resolver status: Waiting.
|
|
</constant>
|
|
<constant name="RESOLVER_STATUS_DONE" value="2" enum="ResolverStatus">
|
|
DNS hostname resolver status: Done.
|
|
</constant>
|
|
<constant name="RESOLVER_STATUS_ERROR" value="3" enum="ResolverStatus">
|
|
DNS hostname resolver status: Error.
|
|
</constant>
|
|
<constant name="RESOLVER_MAX_QUERIES" value="32">
|
|
Maximum number of concurrent DNS resolver queries allowed, [constant RESOLVER_INVALID_ID] is returned if exceeded.
|
|
</constant>
|
|
<constant name="RESOLVER_INVALID_ID" value="-1">
|
|
Invalid ID constant. Returned if [constant RESOLVER_MAX_QUERIES] is exceeded.
|
|
</constant>
|
|
<constant name="TYPE_NONE" value="0" enum="Type">
|
|
Address type: None.
|
|
</constant>
|
|
<constant name="TYPE_IPV4" value="1" enum="Type">
|
|
Address type: Internet protocol version 4 (IPv4).
|
|
</constant>
|
|
<constant name="TYPE_IPV6" value="2" enum="Type">
|
|
Address type: Internet protocol version 6 (IPv6).
|
|
</constant>
|
|
<constant name="TYPE_ANY" value="3" enum="Type">
|
|
Address type: Any.
|
|
</constant>
|
|
</constants>
|
|
</class>
|