Skip to main content

get_users/
get_users.rs

1//! List all users enrolled on the device.
2//!
3//! Run with: `cargo run --example get_users -- 192.168.1.201 [port]`
4
5use std::time::Duration;
6use zkteco::Zk;
7
8fn main() -> zkteco::ZkResult<()> {
9    let mut args = std::env::args().skip(1);
10    let ip = args.next().expect("usage: get_users <ip> [port]");
11    let port: u16 = args.next().and_then(|p| p.parse().ok()).unwrap_or(4370);
12
13    let mut zk = Zk::builder(ip)
14        .port(port)
15        .timeout(Duration::from_secs(10))
16        .omit_ping(true)
17        .build();
18
19    zk.connect()?;
20    // Disable user interaction while we read in bulk, then restore it.
21    zk.disable_device()?;
22    let users = zk.get_users()?;
23    zk.enable_device()?;
24    zk.disconnect()?;
25
26    println!("{} users", users.len());
27    for u in users {
28        println!(
29            "  uid={:<4} id={:<10} name={:<20} priv={} card={}",
30            u.uid, u.user_id, u.name, u.privilege, u.card
31        );
32    }
33    Ok(())
34}