IP

Inherits: Object

互联网协议(IP)支持功能,如DNS解析。

描述

IP包含对互联网协议(IP)的支持功能。TCP/IP支持在不同的类别中(见StreamPeerTCPTCP_Server)。IP提供DNS主机名解析支持,包括阻塞式和线程式。

枚举

enum ResolverStatus:

  • RESOLVER_STATUS_NONE = 0 --- DNS 主机名解析器状态:无状态。

  • RESOLVER_STATUS_WAITING = 1 --- DNS 主机名解析器状态:正在等待。

  • RESOLVER_STATUS_DONE = 2 --- DNS 主机名解析器状态:完成。

  • RESOLVER_STATUS_ERROR = 3 --- DNS 主机名解析器状态:错误。


enum Type:

  • TYPE_NONE = 0 --- 地址类型:无。

  • TYPE_IPV4 = 1 --- 地址类型:互联网协议版本4(IPv4)。

  • TYPE_IPV6 = 2 --- 地址类型:互联网协议版本6(IPv6)。

  • TYPE_ANY = 3 --- 地址类型:任意。

常量

  • RESOLVER_MAX_QUERIES = 32 --- 允许的最大并发DNS解析器查询数量,如果超过,则返回RESOLVER_INVALID_ID

  • RESOLVER_INVALID_ID = -1 --- 无效的ID常数。如果超过了RESOLVER_MAX_QUERIES,则返回。

方法说明

  • void clear_cache ( String hostname="" )

移除所有hostname主机名的缓存引用。如果没有给出hostname,所有缓存的IP地址将被删除。


  • void erase_resolve_item ( int id )

从队列中删除一个给定的项目id。这应该被用来在队列完成后释放队列,以便进行更多的查询。


  • Array get_local_addresses ( ) const

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


  • Array get_local_interfaces ( ) const

以数组形式返回所有网络适配器(network adapters)。

每个适配器是一个形式的字典。

{
    "index":"1", # 接口索引。
    "name":"eth0", # 接口名称。
    "friendly":"Ethernet One", # 一个友好的名字(可能是空的)。
    "address":["192.168.1.101"], # 一个与此接口相关的IP地址数组。
}

  • String get_resolve_item_address ( int id ) const

给定队列 id,返回排队主机名的 IP 地址。出现错误或解析尚未发生时返回一个空字符串(参阅 get_resolve_item_status)。


  • Array get_resolve_item_addresses ( int id ) const

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


给定队列 id,以 ResolverStatus 常量的形式返回排队主机名的状态。


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


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


  • int resolve_hostname_queue_item ( String host, Type ip_type=3 )

创建一个队列项目,根据Type常数ip_type,将主机名解析为IPv4或IPv6地址。如果成功,返回队列ID,否则返回RESOLVER_INVALID_ID