#local #linux #info #secure #linux-networking #system-information #operating-system

get_local_info

Getlocalinfo 是一个 Rust crate,用于获取本地信息

15 个版本

0.2.4 2024年1月15日
0.2.3 2024年1月15日
0.1.9 2024年1月11日
0.1.2 2023年12月28日

#1175 in 网络编程

MIT/Apache

19KB
324

get_local_info Crates.io 许可 文档

项目介绍

  • get_local_info 是一个用于获取 Linux 本地信息的 Rust crate,其目标是解决获取 Linux 本地信息的难题。支持 KyLin、UOS、HarmonyOS 等中国操作系统。
  • 项目维护:长期

当前功能

1. 网络功能

1.1 获取网络接口信息

1.2 获取活动网卡信息

  • 网卡名称
  • IPv4
  • IPv6
  • mac
  • 获取外部 IPv4 地址
  • 域名解析

2. 获取系统版本

  • Kylin10 支持 2017 年及以后
  • Ubuntu 支持 18.04 及以后
  • UOS20 支持 1020 及以后

3. 系统功能

  • 进程检测
  • 虚拟机检测
  • 双系统检测

4. 安全信息检测

  • topsec 抗病毒数据库日期检测

5. 文件信息

  • 遍历指定目录下的所有文件

额外功能

  • find_peak_element

使用方法

1. cargo add get_local_info

2. 将其导入到您的项目中

extern crate get_local_info;

fn main() {
    println!("{}", get_local_info::get_pc_net_card_name());
    println!("{}", get_local_info::get_pc_ipv4());
    println!("{}", get_local_info::get_pc_ipv6());
    println!("{}", get_local_info::get_pc_mac());
    println!("{:?}", get_local_info::get_pc_net_card_info());
    // osname: ubuntu or uos or kylin
    let osname = "uos";
    println!("{}", get_local_info::get_pc_system_ver(osname));
    //check proccess name
    let pname = "gnome";
    println!("{}", get_local_info::get_pc_system_check_pname(pname));
    // flase is Real machine, true is vm
    println!("Running in VM:{}", get_local_info::get_pc_system_is_vm());
     // true is multi os
    println!("multi os:{}", get_local_info::get_pc_system_is_d_sys());
    // Obtain the update time of the antivirus database
    let antiname = "topsec";
    println!("virus lib time:{}", get_local_info::get_pc_check_antiviruslib(antiname));
    //find_peak_element
    let nums = [1];
    println!("{}", get_local_info::alg::find_peak_element(nums.to_vec()));
    //Traverse all files in the specified directory
    let idir = "/opt";
    println!("files:{:?}", get_local_info::get_dir_filename(idir));
    let uri = "https://api.ipify.org/?format=text";
    println!("wai wang ip:{}", get_local_info::network::get_ww_ipv4(uri));
    let hostname = "www.baidu.com";
    let parse_ip = get_local_info::network::get_domain_ip(hostname);
    println!("domain parse_ip:{:?}",parse_ip);
}

关于作者

依赖

~8–24MB
~341K SLoC