我正在寻找从主机名列表中抓取SSL数据的方法。一切都按预期工作,除了get_cert_data函数由于缺少SSL证书或无法连接到主机而返回None之外。两种方式都将None值附加到certs_list。我正在使用一百万个主机的大型列表,由于数据的性质,我希望其中的大多数都没有SSL证书。可以理解,我想节省内存而不在列表中不存储900K None值。感谢您抽出宝贵的时间阅读本文!奖励:使用域名或主机名获取此数据是否更有意义,为什么?
template<class T>
auto convert(T&& t) -> decltype(std::forward<T>(t)) {
return std::forward<T>(t);
}
int convert(uint8_t t) {
return t;
}
template<class Head>
void print_args(std::ostream& s, Head&& head) {
s << convert(std::forward<Head>(head));
}
template<class Head, class... Tail>
void print_args(std::ostream& s, Head&& head, Tail&&... tail) {
s << convert(std::forward<Head>(head)) << ',';
print_args(s, std::forward<Tail>(tail)...);
}
答案 0 :(得分:1)
pool.map
不返回结果。它返回Future
对象的可迭代对象。每个代表一个要执行的操作。因此,您必须过滤其结果。
valid_certs = [cert.result() for cert in certs if cert.result() is not None]