IP

继承: Object

Internet协议(IP)支持DNS解析等功能。

描述

IP包含对网络之间互连的协议(IP)的支持功能。TCP/IP支持属于不同的类别(参见StreamPeerTCPTCPServer)。IP提供DNS主机名解析支持,包括阻塞和线程。

方法


枚举

enum ResolverStatus: 🔗

ResolverStatus RESOLVER_STATUS_NONE = 0

DNS主机名解析器状态:无状态。

ResolverStatus RESOLVER_STATUS_WAITING = 1

DNS主机名解析器状态:等待。

ResolverStatus RESOLVER_STATUS_DONE = 2

DNS主机名解析器状态:完成。

ResolverStatus RESOLVER_STATUS_ERROR = 3

DNS主机名解析器状态:错误。


enum Type: 🔗

Type TYPE_NONE = 0

地址类型:无。

Type TYPE_IPV4 = 1

地址类型:Internet协议版本4(IPv4)。

Type TYPE_IPV6 = 2

地址类型:Internet协议版本6(IPv6)。

Type TYPE_ANY = 3

地址类型:任意。


常量

RESOLVER_MAX_QUERIES = 256 🔗

允许的最大并发DNS解析器查询数,如果超过则返回RESOLVER_INVALID_ID

RESOLVER_INVALID_ID = -1 🔗

ID常量无效。如果超出RESOLVER_MAX_QUERIES则返回。


方法说明

void clear_cache(hostname: String = "") 🔗

删除hostname的所有缓存引用。如果没有给出hostname,则删除所有缓存的IP地址。


void erase_resolve_item(id: int) 🔗

从队列中删除给定的项目id。这应该用于在队列完成后释放队列以允许发生更多查询。


PackedStringArray get_local_addresses() const 🔗

以数组形式返回所有用户当前的IPv4和IPv6地址。


Array[Dictionary] get_local_interfaces() const 🔗

以数组形式返回所有网络适配器。每个适配器都是一个字典,格式如下:

{
    "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.
}

String get_resolve_item_address(id: int) const 🔗

返回给定队列id的排队主机名的IP地址。如果出现错误或尚未进行解析,则返回一个空字符串(参见get_resolve_item_status())。


Array get_resolve_item_addresses(id: int) const 🔗

返回已解析的地址,如果发生错误或解析尚未发生,则返回空数组(参见get_resolve_item_status())。


ResolverStatus get_resolve_item_status(id: int) const 🔗

给定队列id,将排队主机名的状态作为ResolverStatus常量返回。


String resolve_hostname(host: String, ip_type: Type = 3) 🔗

解析时返回给定主机名的IPv4或IPv6地址(阻塞类型方法)。返回的地址类型取决于作为ip_type给出的Type常量。


PackedStringArray resolve_hostname_addresses(host: String, ip_type: Type = 3) 🔗

以阻塞方式解析给定的主机名。地址作为IPv4或IPv6地址的Array返回,具体取决于ip_type


int resolve_hostname_queue_item(host: String, ip_type: Type = 3) 🔗

创建一个队列项,根据作为ip_type给出的Type常量将主机名解析为IPv4或IPv6地址。如果成功,则返回队列ID,如果错误,则返回RESOLVER_INVALID_ID