code: func splitNodeItemKey(key []byte) (id ID, ip net.IP, field string) {
  	id, key = splitNodeKey(key)
  	// Skip discover root.
  	if string(key) == dbDiscoverRoot {
  		return id, nil, ""
  	}
  	key = key[len(dbDiscoverRoot)+1:]
  	// Split out the IP.
  	ip = net.IP(key[:16])
  	if ip4 := ip.To4(); ip4 != nil {
  		ip = ip4
  	}
  	key = key[16+1:]
  	// Field is the remainder of key.
  	field = string(key)
  	return id, ip, field
  }
docs: // splitNodeItemKey returns the components of a key created by nodeItemKey.