pub struct FofaClient {
pub key: String,
pub fields: String,
pub query_string: String,
pub size: u32,
}Expand description
请求客户端的数据结构,这里的page单独以一个usize传入到search,提供遍历
Fields§
§key: String§fields: String§query_string: String§size: u32Implementations§
Source§impl FofaClient
impl FofaClient
Sourcepub async fn search(&self, page: u16) -> Result<FofaApiSearch, Error>
pub async fn search(&self, page: u16) -> Result<FofaApiSearch, Error>
大批量调用的情况下使用search接口多些,host聚合用的不多 所以这里就只写了search接口调用 Usage: let client = fofa::FofaClient {…..}; client.search(1); //1是页数,第几页
Sourcepub fn get_consumed_fpoint(&self, raw_response: &FofaApiSearch) -> u16
pub fn get_consumed_fpoint(&self, raw_response: &FofaApiSearch) -> u16
获取剩余F点数量,返回一个u16
Sourcepub fn get_required_fpoints(&self, raw_response: &FofaApiSearch) -> u16
pub fn get_required_fpoints(&self, raw_response: &FofaApiSearch) -> u16
获取本次查询需要的F点数量,返回一个u16
Sourcepub fn get_size(&self, raw_response: &FofaApiSearch) -> u32
pub fn get_size(&self, raw_response: &FofaApiSearch) -> u32
获取本次查询结果的数据总条数,返回一个u32
Sourcepub fn get_mode(&self, raw_response: &FofaApiSearch) -> String
pub fn get_mode(&self, raw_response: &FofaApiSearch) -> String
获取本次查询执行的接口,返回String
Sourcepub fn get_query(&self, raw_response: &FofaApiSearch) -> String
pub fn get_query(&self, raw_response: &FofaApiSearch) -> String
获取本次查询传入的查询语句,返回String
Sourcepub fn get_results(&self, raw_response: &FofaApiSearch) -> Vec<Vec<String>>
pub fn get_results(&self, raw_response: &FofaApiSearch) -> Vec<Vec<String>>
获取到API返回的result,这里使用Vec<Vec<String>>来存,也就是[[..]:[..],[..]:[..],…]这样的JSON
这里没有经过url_escape,在做GUI的时候记得添加,不然会乱码,返回Vec<Vec<String>>
Sourcepub fn get_lines(
&self,
raw_response: &FofaApiSearch,
start: usize,
end: usize,
) -> Vec<Vec<String>>
pub fn get_lines( &self, raw_response: &FofaApiSearch, start: usize, end: usize, ) -> Vec<Vec<String>>
按结果中的行获取数据,返回result
Sourcepub fn get_fields_in_range(
&self,
selected_fields: String,
raw_response: &FofaApiSearch,
) -> Vec<String>
pub fn get_fields_in_range( &self, selected_fields: String, raw_response: &FofaApiSearch, ) -> Vec<String>
把传入的Vec<Vec<String>>转换成一个Hashmap,供输入字段进行查询,这里考虑过使用数学方法(遍历pop)降低时间复杂度到O(n)
但是后来觉得还是直观一点比较好,返回的是一个Fofaclient,O(n^2)
Sourcepub async fn get_selected_pages(
&self,
start: u16,
end: u16,
) -> Result<Vec<Vec<String>>, Error>
pub async fn get_selected_pages( &self, start: u16, end: u16, ) -> Result<Vec<Vec<String>>, Error>
调用search函数,获取search的response并拼接,返回Vec<Vec<String>>,O(n)
Sourcepub fn write_data_to_excel(
&mut self,
location: String,
pages: u16,
raw_response: &Vec<Vec<String>>,
) -> Result<(), XlsxError>
pub fn write_data_to_excel( &mut self, location: String, pages: u16, raw_response: &Vec<Vec<String>>, ) -> Result<(), XlsxError>
遍历Vec<Vec<String>>并写入xlsx,O(n)
Auto Trait Implementations§
impl Freeze for FofaClient
impl RefUnwindSafe for FofaClient
impl Send for FofaClient
impl Sync for FofaClient
impl Unpin for FofaClient
impl UnwindSafe for FofaClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more