summaryrefslogtreecommitdiff
path: root/doc/classes/IP.xml
blob: b3ce1abaeb6251fd187f47ec095ee2e01699c833 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?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="&quot;&quot;">
			</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>