change net hardware adress to string.

pull/4/head
WAKAYAMA Shirou 11 years ago
parent 9b46031b59
commit 6ecec79319

@ -17,7 +17,6 @@ type NetIOCountersStat struct {
Dropout uint64 `json:"dropout"` // total number of outgoing packets which were dropped (always 0 on OSX and BSD) Dropout uint64 `json:"dropout"` // total number of outgoing packets which were dropped (always 0 on OSX and BSD)
} }
// Addr is implemented compatibility to psutil // Addr is implemented compatibility to psutil
type Addr struct { type Addr struct {
IP string `json:"ip"` IP string `json:"ip"`
@ -40,10 +39,10 @@ type NetInterfaceAddr struct {
} }
type NetInterfaceStat struct { type NetInterfaceStat struct {
MTU int `json:"mtu"` // maximum transmission unit MTU int `json:"mtu"` // maximum transmission unit
Name string `json:"name"` // e.g., "en0", "lo0", "eth0.100" Name string `json:"name"` // e.g., "en0", "lo0", "eth0.100"
HardwareAddr []byte `json:"hardwareaddr"` // IEEE MAC-48, EUI-48 and EUI-64 form HardwareAddr string `json:"hardwareaddr"` // IEEE MAC-48, EUI-48 and EUI-64 form
Flags []string `json:"flags"` // e.g., FlagUp, FlagLoopback, FlagMulticast Flags []string `json:"flags"` // e.g., FlagUp, FlagLoopback, FlagMulticast
Addrs []NetInterfaceAddr `json:"addrs"` Addrs []NetInterfaceAddr `json:"addrs"`
} }
@ -67,12 +66,11 @@ func (n NetInterfaceStat) String() string {
return string(s) return string(s)
} }
func (n NetInterfaceAddr) String() string{ func (n NetInterfaceAddr) String() string {
s, _ := json.Marshal(n) s, _ := json.Marshal(n)
return string(s) return string(s)
} }
func NetInterfaces() ([]NetInterfaceStat, error) { func NetInterfaces() ([]NetInterfaceStat, error) {
is, err := net.Interfaces() is, err := net.Interfaces()
if err != nil { if err != nil {
@ -85,29 +83,29 @@ func NetInterfaces() ([]NetInterfaceStat, error) {
if ifi.Flags&net.FlagUp != 0 { if ifi.Flags&net.FlagUp != 0 {
flags = append(flags, "up") flags = append(flags, "up")
} }
if ifi.Flags & net.FlagBroadcast != 0 { if ifi.Flags&net.FlagBroadcast != 0 {
flags = append(flags, "broadcast") flags = append(flags, "broadcast")
} }
if ifi.Flags & net.FlagLoopback != 0{ if ifi.Flags&net.FlagLoopback != 0 {
flags = append(flags, "loopback") flags = append(flags, "loopback")
} }
if ifi.Flags & net.FlagPointToPoint != 0{ if ifi.Flags&net.FlagPointToPoint != 0 {
flags = append(flags, "pointtopoint") flags = append(flags, "pointtopoint")
} }
if ifi.Flags & net.FlagMulticast != 0{ if ifi.Flags&net.FlagMulticast != 0 {
flags = append(flags, "multicast") flags = append(flags, "multicast")
} }
r := NetInterfaceStat{ r := NetInterfaceStat{
Name: ifi.Name, Name: ifi.Name,
MTU: ifi.MTU, MTU: ifi.MTU,
HardwareAddr: ifi.HardwareAddr, HardwareAddr: ifi.HardwareAddr.String(),
Flags: flags, Flags: flags,
} }
addrs, err := ifi.Addrs() addrs, err := ifi.Addrs()
if err == nil { if err == nil {
r.Addrs = make([]NetInterfaceAddr, 0, len(addrs)) r.Addrs = make([]NetInterfaceAddr, 0, len(addrs))
for _, addr := range addrs{ for _, addr := range addrs {
r.Addrs = append(r.Addrs, NetInterfaceAddr{ r.Addrs = append(r.Addrs, NetInterfaceAddr{
Addr: addr.String(), Addr: addr.String(),
}) })

@ -53,16 +53,16 @@ func TestNetIOCounters(t *testing.T) {
} }
} }
func TestNetInterfaces(t *testing.T){ func TestNetInterfaces(t *testing.T) {
v, err := NetInterfaces() v, err := NetInterfaces()
if err != nil{ if err != nil {
t.Errorf("Could not get NetInterfaceStat: %v", err) t.Errorf("Could not get NetInterfaceStat: %v", err)
} }
if len(v) == 0{ if len(v) == 0 {
t.Errorf("Could not get NetInterfaceStat: %v", err) t.Errorf("Could not get NetInterfaceStat: %v", err)
} }
for _, vv := range v{ for _, vv := range v {
if vv.Name == ""{ if vv.Name == "" {
t.Errorf("Invalid NetInterface: %v", vv) t.Errorf("Invalid NetInterface: %v", vv)
} }
} }

Loading…
Cancel
Save