You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
949 B
33 lines
949 B
// Copyright 2017 Google Inc. All rights reserved. |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file. |
|
|
|
// +build !js |
|
|
|
package uuid |
|
|
|
import "net" |
|
|
|
var interfaces []net.Interface // cached list of interfaces |
|
|
|
// getHardwareInterface returns the name and hardware address of interface name. |
|
// If name is "" then the name and hardware address of one of the system's |
|
// interfaces is returned. If no interfaces are found (name does not exist or |
|
// there are no interfaces) then "", nil is returned. |
|
// |
|
// Only addresses of at least 6 bytes are returned. |
|
func getHardwareInterface(name string) (string, []byte) { |
|
if interfaces == nil { |
|
var err error |
|
interfaces, err = net.Interfaces() |
|
if err != nil { |
|
return "", nil |
|
} |
|
} |
|
for _, ifs := range interfaces { |
|
if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) { |
|
return ifs.Name, ifs.HardwareAddr |
|
} |
|
} |
|
return "", nil |
|
}
|
|
|