1use 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 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}