code: func (c *Client) Request(ip net.IP) error {
  	if c.ip == nil {
  		return errNoIPv4Addr
  	}
  
  	// Create ARP packet for broadcast address to attempt to find the
  	// hardware address of the input IP address
  	arp, err := NewPacket(OperationRequest, c.ifi.HardwareAddr, c.ip, ethernet.Broadcast, ip)
  	if err != nil {
  		return err
  	}
  	return c.WriteTo(arp, ethernet.Broadcast)
  }
docs: // Request sends an ARP request, asking for the hardware address
  // associated with an IPv4 address. The response, if any, can be read
  // with the Read method.
  //
  // Unlike Resolve, which provides an easier interface for getting the
  // hardware address, Request allows sending many requests in a row,
  // retrieving the responses afterwards.