类
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()
)。
GNetworkAddress
和GNetworkService
提供对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_lookup_by_address_async
开始异步地将 address
反向解析以确定其关联的主机名,最终会调用 callback
,该调用必须调用 g_resolver_lookup_by_address_finish()
来获取最终结果。
自 2.22
g_resolver_lookup_by_name
同步解析 hostname
以确定其关联的 IP 地址(s)。hostname
可以是纯 ASCII 或 UTF-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_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
同步执行给定的 rrname
的 DNS 记录查找,并将记录作为 GVariant
元组列表返回。有关每个 record_type
记录包含的信息,请参阅 GResolverRecordType
。
自 2.34
g_resolver_lookup_records_async
开始异步执行给定的 rrname
的 DNS 查找,最终会调用 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
中指定service
和protocol
的DNS SRV查询,并返回GSrvTarget
数组合并。domain
可以是仅含ASCII或UTF-8主机名。请注意,service
和protocol
参数不包含实际DNS 条目中出现的开头的下划线。
自 2.22
g_resolver_lookup_service_async
开始异步执行给定domain
中指定service
和protocol
的DNS SRV查询,并将最终调用callback
,该回调必须调用g_resolver_lookup_service_finish()
以获取最终结果。更多详情请见g_resolver_lookup_service()
。
自 2.22
g_resolver_set_default
将resolver
设置为基础程序的默认解析器(参考resolver
,并注销先前的默认解析器,如果有的话)。未来的g_resolver_get_default()
调用将返回此解析器。
自 2.22
信号
从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_async
开始异步地将 address
反向解析以确定其关联的主机名,最终会调用 callback
,该调用必须调用 g_resolver_lookup_by_address_finish()
来获取最终结果。
自 2.22
Gio.ResolverClass.lookup_by_name
同步解析 hostname
以确定其关联的 IP 地址(s)。hostname
可以是纯 ASCII 或 UTF-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_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
同步执行给定的 rrname
的 DNS 记录查找,并将记录作为 GVariant
元组列表返回。有关每个 record_type
记录包含的信息,请参阅 GResolverRecordType
。
自 2.34
Gio.ResolverClass.lookup_records_async
开始异步执行给定的 rrname
的 DNS 查找,最终会调用 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