package main import ( "fmt" "net" "github.com/charmbracelet/lipgloss" ) func main() { // Define styles headerStyle := lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("63")) ipStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("203")) upStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("42")) downStyle := lipgloss.NewStyle().Foreground(lipgloss.Color("196")) addrStyle := lipgloss.NewStyle().Faint(true) interfaces, err := net.Interfaces() if err != nil { fmt.Println("Error:", err) return } for _, iface := range interfaces { state := downStyle.Render("DOWN") if iface.Flags&net.FlagUp != 0 { state = upStyle.Render("UP") } fmt.Print(headerStyle.Render(iface.Name), " ") fmt.Printf(addrStyle.Render(" %s"), iface.HardwareAddr) fmt.Printf(addrStyle.Render(" %d"), iface.MTU) fmt.Printf(" %s\n", state) addrs, err := iface.Addrs() if err != nil { fmt.Println(" Error getting addresses:", err) continue } for _, addr := range addrs { ipNet, ok := addr.(*net.IPNet) if !ok || ipNet.IP.To4() == nil { continue // Skip if not an IPv4 address } fmt.Println(" ", ipStyle.Render(addr.String())) } fmt.Println() } }