code: func Dial(ifi *net.Interface) (*Client, error) {
  	// Open raw socket to send and receive ARP packets using ethernet frames
  	// we build ourselves.
  	p, err := raw.ListenPacket(ifi, protocolARP, nil)
  	if err != nil {
  		return nil, err
  	}
  	return New(ifi, p)
  }
docs: // Dial creates a new Client using the specified network interface.
  // Dial retrieves the IPv4 address of the interface and binds a raw socket
  // to send and receive ARP packets.