code: func getIfSocket() (fd int, err error) {
  	for _, socket := range []int{
  		syscall.AF_INET,
  		syscall.AF_PACKET,
  		syscall.AF_INET6,
  	} {
  		if fd, err = syscall.Socket(socket, syscall.SOCK_DGRAM, 0); err == nil {
  			break
  		}
  	}
  	if err == nil {
  		return fd, nil
  	}
  	return -1, err
  }
docs: // THIS CODE DOES NOT COMMUNICATE WITH KERNEL VIA RTNETLINK INTERFACE
  // IT IS HERE FOR BACKWARDS COMPATIBILITY WITH OLDER LINUX KERNELS
  // WHICH SHIP WITH OLDER NOT ENTIRELY FUNCTIONAL VERSION OF NETLINK