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
 | 
						|
}
 | 
						|
 |