Crate rust_ipmi

source ·
Expand description

rust-ipmi is a client library for remotely managing/monitoring systems with hardware support for IPMI. IPMI is a specification which allows software to interact and communicate with systems through the BMC (Baseboard Management Controller). BMC is a hardware component which enables interaction with a computer’s chassis, motherboard, and storage through LAN and serial.This library currently supports the following:

  • IPMI over LAN using IPMI v2 / RMCP+ (it does NOT currently support v1.5)

Examples

Creating an ipmi client, authenticating against the BMC, and running a raw request

use rust_ipmi::{IPMIClient, NetFn};

fn main() {
    // create the client for the server you want to execute IPMI commands against
    let mut client: IPMIClient =
        IPMIClient::new("192.168.88.10:623").expect("Failed to create ipmi client");

    // establish a session with the BMC using the credentials specified
    client
        .establish_connection("billybob123", "superpassword")
        .expect("Failed to establish the session with the BMC");
     
    // send a command to the BMC using raw values
    let response = client.send_raw_request(NetFn::App, 0x3b, Some(vec![0x04]));

    match response {
        Err(err) => println!("Failed to send the raw request; err = {:?}", err),
        Ok(n) => println!("{}", n), // print the response
    }
}

Structs

Enums