code: func (p *PerHost) AddFromString(s string) {
  	hosts := strings.Split(s, ",")
  	for _, host := range hosts {
  		host = strings.TrimSpace(host)
  		if len(host) == 0 {
  			continue
  		}
  		if strings.Contains(host, "/") {
  			// We assume that it's a CIDR address like 127.0.0.0/8
  			if _, net, err := net.ParseCIDR(host); err == nil {
  				p.AddNetwork(net)
  			}
  			continue
  		}
  		if ip := net.ParseIP(host); ip != nil {
  			p.AddIP(ip)
  			continue
  		}
  		if strings.HasPrefix(host, "*.") {
  			p.AddZone(host[1:])
  			continue
  		}
  		p.AddHost(host)
  	}
  }
docs: // AddFromString parses a string that contains comma-separated values
  // specifying hosts that should use the bypass proxy. Each value is either an
  // IP address, a CIDR range, a zone (*.example.com) or a hostname
  // (localhost). A best effort is made to parse the string and errors are
  // ignored.