GiResolver

描述 [src]

abstract class Gio.Resolver : GObject.Object
{
  priv: GResolverPrivate*
}

处理DNS解析的对象。使用g_resolver_get_default()获取默认解析器。

GResolver提供可取消的同步和异步DNS解析,包括主机名(g_resolver_lookup_by_address()g_resolver_lookup_by_name()及其异步变体)和SRV(服务)记录(g_resolver_lookup_service())。

GNetworkAddressGNetworkService提供对GResolver功能的包装,同时也实现了GSocketConnectable接口,使得连接到远程主机/服务变得容易。

默认解析器(见g_resolver_get_default())自GLib 2.78以来已设置超时为30秒。GLib的早期版本不支持解析器超时。

这是一个抽象类型;它的子类为不同的平台和情况实现了不同的解析器。

祖先

函数

g_resolver_free_addresses

释放 addresses (这应该是从 g_resolver_lookup_by_name() 或 g_resolver_lookup_by_name_finish() 返回的值)。(这是一个便利方法;您也可以手动简单地释放结果。)

自 2.22

g_resolver_free_targets

释放 targets (这应该是从 g_resolver_lookup_service() 或 g_resolver_lookup_service_finish() 返回的值)。(这是一个便利方法;您也可以手动简单地释放结果。)

自 2.22

g_resolver_get_default

获取默认的 GResolver。使用完毕后,您应该取消引用它。GResolver 可能会使用其引用计数作为关于其应分配多少线程来并发处理 DNS 解析的提示。

自 2.22

实例方法

g_resolver_get_timeout

获取应用于所有解析器查找的超时时间。请参阅 GResolver:timeout

自 2.78

g_resolver_lookup_by_address

同步地将 address 反向解析以确定其关联的主机名。

自 2.22

g_resolver_lookup_by_address_async

开始异步地将 address 反向解析以确定其关联的主机名,最终会调用 callback,该调用必须调用 g_resolver_lookup_by_address_finish() 来获取最终结果。

自 2.22

g_resolver_lookup_by_address_finish

检索先前调用 g_resolver_lookup_by_address_async() 的结果。

自 2.22

g_resolver_lookup_by_name

同步解析 hostname 以确定其关联的 IP 地址(s)。hostname 可以是纯 ASCIIUTF-8 主机名,或者 IP 地址的文本形式(在这种情况下,这变成了 g_inet_address_new_from_string() 的包装器)。

自 2.22

g_resolver_lookup_by_name_async

开始异步解析 hostname 以确定其关联的 IP 地址(s),最终会调用 callback,该 callback 必须调用 g_resolver_lookup_by_name_finish() 来获取结果。有关更多详细信息,请参阅 g_resolver_lookup_by_name()

自 2.22

g_resolver_lookup_by_name_finish

检索调用 g_resolver_lookup_by_name_async() 的结果。

自 2.22

g_resolver_lookup_by_name_with_flags

这与 g_resolver_lookup_by_name() 不同,因为它可以使用 flags 修改查找行为。例如,这可以用来通过 G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY 限制结果。

自 2.60

g_resolver_lookup_by_name_with_flags_async

开始异步解析 hostname 以确定其关联的 IP 地址(s),最终会调用 callback,该 callback 必须调用 g_resolver_lookup_by_name_with_flags_finish() 来获取结果。有关更多详细信息,请参阅 g_resolver_lookup_by_name()

自 2.60

g_resolver_lookup_by_name_with_flags_finish

检索调用 g_resolver_lookup_by_name_with_flags_async() 的结果。

自 2.60

g_resolver_lookup_records

同步执行给定的 rrnameDNS 记录查找,并将记录作为 GVariant 元组列表返回。有关每个 record_type 记录包含的信息,请参阅 GResolverRecordType

自 2.34

g_resolver_lookup_records_async

开始异步执行给定的 rrnameDNS 查找,最终会调用 callback,该 callback 必须调用 g_resolver_lookup_records_finish() 来获取最终结果。有关更多详细信息,请参阅 g_resolver_lookup_records()

自 2.34

g_resolver_lookup_records_finish

检索先前调用 g_resolver_lookup_records_async() 的结果。返回一个非空记录列表,作为 GVariant 元组。

自 2.34

g_resolver_lookup_service

同步执行给定domain中指定serviceprotocolDNS SRV查询,并返回GSrvTarget数组合并。domain可以是仅含ASCII或UTF-8主机名。请注意,serviceprotocol参数不包含实际DNS 条目中出现的开头的下划线。

自 2.22

g_resolver_lookup_service_async

开始异步执行给定domain中指定serviceprotocolDNS SRV查询,并将最终调用callback,该回调必须调用g_resolver_lookup_service_finish()以获取最终结果。更多详情请见g_resolver_lookup_service()

自 2.22

g_resolver_lookup_service_finish

检索先前调用g_resolver_lookup_service_async()的结果。

自 2.22

g_resolver_set_default

resolver设置为基础程序的默认解析器(参考resolver,并注销先前的默认解析器,如果有的话)。未来的g_resolver_get_default()调用将返回此解析器。

自 2.22

g_resolver_set_timeout

设置应用解析所有查询的超时。请参阅GResolver:timeout

自 2.78

GObject继承的方法(43)

请参阅GObject获取方法的完整列表。

属性

Gio.Resolver:timeout

应用于所有解析查询的超时,单位为毫秒。

自 2.78

信号

Gio.Resolver::reload

在解析器注意到系统解析器配置已更改时发出。

GObject继承的信号(1)
GObject::notify

当对象的一个属性通过g_object_set_property()、g_object_set()等被设置时,发出notify信号。

类结构

struct GioResolverClass {
  GObjectClass parent_class;
  void (* reload) (
    GResolver* resolver
  );
  GList* (* lookup_by_name) (
    GResolver* resolver,
    const gchar* hostname,
    GCancellable* cancellable,
    GError** error
  );
  void (* lookup_by_name_async) (
    GResolver* resolver,
    const gchar* hostname,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GList* (* lookup_by_name_finish) (
    GResolver* resolver,
    GAsyncResult* result,
    GError** error
  );
  gchar* (* lookup_by_address) (
    GResolver* resolver,
    GInetAddress* address,
    GCancellable* cancellable,
    GError** error
  );
  void (* lookup_by_address_async) (
    GResolver* resolver,
    GInetAddress* address,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  gchar* (* lookup_by_address_finish) (
    GResolver* resolver,
    GAsyncResult* result,
    GError** error
  );
  GList* (* lookup_service) (
    GResolver* resolver,
    const gchar* rrname,
    GCancellable* cancellable,
    GError** error
  );
  void (* lookup_service_async) (
    GResolver* resolver,
    const gchar* rrname,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GList* (* lookup_service_finish) (
    GResolver* resolver,
    GAsyncResult* result,
    GError** error
  );
  GList* (* lookup_records) (
    GResolver* resolver,
    const gchar* rrname,
    GResolverRecordType record_type,
    GCancellable* cancellable,
    GError** error
  );
  void (* lookup_records_async) (
    GResolver* resolver,
    const gchar* rrname,
    GResolverRecordType record_type,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GList* (* lookup_records_finish) (
    GResolver* resolver,
    GAsyncResult* result,
    GError** error
  );
  void (* lookup_by_name_with_flags_async) (
    GResolver* resolver,
    const gchar* hostname,
    GResolverNameLookupFlags flags,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GList* (* lookup_by_name_with_flags_finish) (
    GResolver* resolver,
    GAsyncResult* result,
    GError** error
  );
  GList* (* lookup_by_name_with_flags) (
    GResolver* resolver,
    const gchar* hostname,
    GResolverNameLookupFlags flags,
    GCancellable* cancellable,
    GError** error
  );
  
}

没有可用的描述。

类成员
parent_class: GObjectClass

没有可用的描述。

reload: void (* reload) ( GResolver* resolver )

没有可用的描述。

lookup_by_name: GList* (* lookup_by_name) ( GResolver* resolver, const gchar* hostname, GCancellable* cancellable, GError** error )

没有可用的描述。

lookup_by_name_async: void (* lookup_by_name_async) ( GResolver* resolver, const gchar* hostname, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

没有可用的描述。

lookup_by_name_finish: GList* (* lookup_by_name_finish) ( GResolver* resolver, GAsyncResult* result, GError** error )

没有可用的描述。

lookup_by_address: gchar* (* lookup_by_address) ( GResolver* resolver, GInetAddress* address, GCancellable* cancellable, GError** error )

没有可用的描述。

lookup_by_address_async: void (* lookup_by_address_async) ( GResolver* resolver, GInetAddress* address, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

没有可用的描述。

lookup_by_address_finish: gchar* (* lookup_by_address_finish) ( GResolver* resolver, GAsyncResult* result, GError** error )

没有可用的描述。

lookup_service: GList* (* lookup_service) ( GResolver* resolver, const gchar* rrname, GCancellable* cancellable, GError** error )

没有可用的描述。

lookup_service_async: void (* lookup_service_async) ( GResolver* resolver, const gchar* rrname, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

没有可用的描述。

lookup_service_finish: GList* (* lookup_service_finish) ( GResolver* resolver, GAsyncResult* result, GError** error )

没有可用的描述。

lookup_records: GList* (* lookup_records) ( GResolver* resolver, const gchar* rrname, GResolverRecordType record_type, GCancellable* cancellable, GError** error )

没有可用的描述。

lookup_records_async: void (* lookup_records_async) ( GResolver* resolver, const gchar* rrname, GResolverRecordType record_type, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

没有可用的描述。

lookup_records_finish: GList* (* lookup_records_finish) ( GResolver* resolver, GAsyncResult* result, GError** error )

没有可用的描述。

按名称带标志异步查找:void (* lookup_by_name_with_flags_async) ( GResolver* resolver, const gchar* hostname, GResolverNameLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )

没有可用的描述。

按名称带标志完成:GList* (* lookup_by_name_with_flags_finish) ( GResolver* resolver, GAsyncResult* result, GError** error )

没有可用的描述。

按名称带标志:GList* (* lookup_by_name_with_flags) ( GResolver* resolver, const gchar* hostname, GResolverNameLookupFlags flags, GCancellable* cancellable, GError** error )

没有可用的描述。

虚方法

Gio.ResolverClass.lookup_by_address

同步地将 address 反向解析以确定其关联的主机名。

自 2.22

Gio.ResolverClass.lookup_by_address_async

开始异步地将 address 反向解析以确定其关联的主机名,最终会调用 callback,该调用必须调用 g_resolver_lookup_by_address_finish() 来获取最终结果。

自 2.22

Gio.ResolverClass.lookup_by_address_finish

检索先前调用 g_resolver_lookup_by_address_async() 的结果。

自 2.22

Gio.ResolverClass.lookup_by_name

同步解析 hostname 以确定其关联的 IP 地址(s)。hostname 可以是纯 ASCIIUTF-8 主机名,或者 IP 地址的文本形式(在这种情况下,这变成了 g_inet_address_new_from_string() 的包装器)。

自 2.22

Gio.ResolverClass.lookup_by_name_async

开始异步解析 hostname 以确定其关联的 IP 地址(s),最终会调用 callback,该 callback 必须调用 g_resolver_lookup_by_name_finish() 来获取结果。有关更多详细信息,请参阅 g_resolver_lookup_by_name()

自 2.22

Gio.ResolverClass.lookup_by_name_finish

检索调用 g_resolver_lookup_by_name_async() 的结果。

自 2.22

Gio.ResolverClass.lookup_by_name_with_flags

这与 g_resolver_lookup_by_name() 不同,因为它可以使用 flags 修改查找行为。例如,这可以用来通过 G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY 限制结果。

自 2.60

Gio.ResolverClass.lookup_by_name_with_flags_async

开始异步解析 hostname 以确定其关联的 IP 地址(s),最终会调用 callback,该 callback 必须调用 g_resolver_lookup_by_name_with_flags_finish() 来获取结果。有关更多详细信息,请参阅 g_resolver_lookup_by_name()

自 2.60

Gio.ResolverClass.lookup_by_name_with_flags_finish

检索调用 g_resolver_lookup_by_name_with_flags_async() 的结果。

自 2.60

Gio.ResolverClass.lookup_records

同步执行给定的 rrnameDNS 记录查找,并将记录作为 GVariant 元组列表返回。有关每个 record_type 记录包含的信息,请参阅 GResolverRecordType

自 2.34

Gio.ResolverClass.lookup_records_async

开始异步执行给定的 rrnameDNS 查找,最终会调用 callback,该 callback 必须调用 g_resolver_lookup_records_finish() 来获取最终结果。有关更多详细信息,请参阅 g_resolver_lookup_records()

自 2.34

Gio.ResolverClass.lookup_records_finish

检索先前调用 g_resolver_lookup_records_async() 的结果。返回一个非空记录列表,作为 GVariant 元组。

自 2.34

Gio.ResolverClass.lookup_service
没有可用的描述。

Gio.ResolverClass.lookup_service_async
没有可用的描述。

Gio.ResolverClass.lookup_service_finish

检索先前调用g_resolver_lookup_service_async()的结果。

自 2.22

Gio.ResolverClass.reload
没有可用的描述。