mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package cli
|
|
|
|
import "strings"
|
|
|
|
// Copied from https://gist.github.com/Ultraporing/fe52981f678be6831f747c206a4861cb
|
|
|
|
// Mac Address parts to look for, and identify non-physical devices. There may be more, update me!
|
|
var macAddrPartsToFilter = []string{
|
|
"00:03:FF", // Microsoft Hyper-V, Virtual Server, Virtual PC
|
|
"0A:00:27", // VirtualBox
|
|
"00:00:00:00:00", // Teredo Tunneling Pseudo-Interface
|
|
"00:50:56", // VMware ESX 3, Server, Workstation, Player
|
|
"00:1C:14", // VMware ESX 3, Server, Workstation, Player
|
|
"00:0C:29", // VMware ESX 3, Server, Workstation, Player
|
|
"00:05:69", // VMware ESX 3, Server, Workstation, Player
|
|
"00:1C:42", // Microsoft Hyper-V, Virtual Server, Virtual PC
|
|
"00:0F:4B", // Virtual Iron 4
|
|
"00:16:3E", // Red Hat Xen, Oracle VM, XenSource, Novell Xen
|
|
"08:00:27", // Sun xVM VirtualBox
|
|
"7A:79", // Hamachi
|
|
}
|
|
|
|
// Filters the possible physical interface address by comparing it to known popular VM Software addresses
|
|
// and Teredo Tunneling Pseudo-Interface.
|
|
//
|
|
//lint:ignore U1000 use in net_windows.go
|
|
func isPhysicalInterface(addr string) bool {
|
|
for _, macPart := range macAddrPartsToFilter {
|
|
if strings.HasPrefix(strings.ToLower(addr), strings.ToLower(macPart)) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|