如何从 dnspython 中的解析器中按名称删除搜索域?
How to remove a search domain by name from the resolver in dnspython?
我正在使用 dnspython 进行 DNS 查询。由于我的机器加入了我公司的域,因此公司域是我的搜索域的一部分。但是,我 NEVER
希望在对主机名进行正向查找时附加该域。
我采用的一种按值删除不需要的名称服务器的方法如下:
import dns.resolver
my_resolver = dns.resolver.Resolver()
my_resolver.nameservers.remove('172.20.10.1')
不幸的是,我不能对 my_resolver.search
采用相同的方法(或者我不知道如何),因为它的元素是 <class 'dns.name.Name'>
实例而不是字符串。
由于我的公司域似乎是 my_resolver.search
中的最后一个元素,因此我将其删除:del my_resolver.search[-1]
。但是我想按值删除它,我该怎么做,最好不要遍历 my_resolver.search
.
But I want to remove it by value, how can I do so, preferably without iterating through my_resolver.search
只需从您拥有的字符串创建一个 dns.name.Name
。
例如:
import dns.name
import dns.resolver
my_resolver = dns.resolver.Resolver()
name_to_remove = 'example.com'
name = dns.name.from_text(name_to_remove)
my_resolver.search.remove(name)
您也可以使用 dns.query.udp()
和其他相关函数来代替 dns.resolver.Resolver.query()
。然后,如果您真的需要搜索名称,您可以在 for 循环中手动添加您想要的任何搜索名称,例如。这正是他们在 Resolver class 中的做法(参见 https://github.com/rthalley/dnspython/blob/57d38840f3cb59b838e49fe65caa6062a0904832/dns/resolver.py#L892)。
我正在使用 dnspython 进行 DNS 查询。由于我的机器加入了我公司的域,因此公司域是我的搜索域的一部分。但是,我 NEVER
希望在对主机名进行正向查找时附加该域。
我采用的一种按值删除不需要的名称服务器的方法如下:
import dns.resolver
my_resolver = dns.resolver.Resolver()
my_resolver.nameservers.remove('172.20.10.1')
不幸的是,我不能对 my_resolver.search
采用相同的方法(或者我不知道如何),因为它的元素是 <class 'dns.name.Name'>
实例而不是字符串。
由于我的公司域似乎是 my_resolver.search
中的最后一个元素,因此我将其删除:del my_resolver.search[-1]
。但是我想按值删除它,我该怎么做,最好不要遍历 my_resolver.search
.
But I want to remove it by value, how can I do so, preferably without iterating through my_resolver.search
只需从您拥有的字符串创建一个 dns.name.Name
。
例如:
import dns.name
import dns.resolver
my_resolver = dns.resolver.Resolver()
name_to_remove = 'example.com'
name = dns.name.from_text(name_to_remove)
my_resolver.search.remove(name)
您也可以使用 dns.query.udp()
和其他相关函数来代替 dns.resolver.Resolver.query()
。然后,如果您真的需要搜索名称,您可以在 for 循环中手动添加您想要的任何搜索名称,例如。这正是他们在 Resolver class 中的做法(参见 https://github.com/rthalley/dnspython/blob/57d38840f3cb59b838e49fe65caa6062a0904832/dns/resolver.py#L892)。