summaryrefslogtreecommitdiff
path: root/doc/classes/IP.xml
blob: 63de1f8081a6b1e381d2cfea60619933ca07c099 (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
<?xml version="1.0" encoding="UTF-8" ?>
<class name="IP" inherits="Object" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<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" />
			<param index="0" name="hostname" type="String" default="&quot;&quot;" />
			<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" />
			<param index="0" name="id" type="int" />
			<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" />
			<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" />
			<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" />
			<param index="0" name="id" type="int" />
			<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" />
			<param index="0" name="id" type="int" />
			<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" />
			<param index="0" name="id" type="int" />
			<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" />
			<param index="0" name="host" type="String" />
			<param index="1" name="ip_type" type="int" enum="IP.Type" default="3" />
			<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" />
			<param index="0" name="host" type="String" />
			<param index="1" name="ip_type" type="int" enum="IP.Type" default="3" />
			<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" />
			<param index="0" name="host" type="String" />
			<param index="1" name="ip_type" type="int" enum="IP.Type" default="3" />
			<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="256">
			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>