// readme

go-ipmi

Native Go implementation of IPMI. It does not shell out to ipmitool.

The library provides an IPMI client (remote and in-band) and a reference IPMI server (BMC) for local development and tests, plus the protocol types they share. Public APIs live under pkg/. To use the client, start with pkg/client.

Compatibility

This module has not reached v1.0.0. The public API may change between versions, including renamed packages, types, functions, and constants. Pin to a specific version or commit for production use.

v0 releases carry no backward-compatibility promise, per the Go module versioning convention.

Install

go get github.com/bougou/go-ipmi

Client

package main

import (
	"context"
	"fmt"

	"github.com/bougou/go-ipmi/pkg/client"
)

func main() {
	c, err := client.NewClient("10.0.0.1", 623, "root", "123456")
	if err != nil {
		panic(err)
	}
	// c.WithInterface(client.InterfaceLan) // IPMI v1.5; default is lanplus (v2.0)
	// openClient, err := client.NewOpenClient() // in-band on Linux / Windows

	ctx := context.Background()
	if err := c.Connect(ctx); err !=โ€ฆ