code: func getIptablesVersionString(exec utilexec.Interface) (string, error) {
  	// this doesn't access mutable state so we don't need to use the interface / runner
  	bytes, err := exec.Command(cmdIptables, "--version").CombinedOutput()
  	if err != nil {
  		return "", err
  	}
  	versionMatcher := regexp.MustCompile("v([0-9]+\\.[0-9]+\\.[0-9]+)")
  	match := versionMatcher.FindStringSubmatch(string(bytes))
  	if match == nil {
  		return "", fmt.Errorf("no iptables version found in string: %s", bytes)
  	}
  	return match[1], nil
  }
docs: // getIptablesVersionString runs "iptables --version" to get the version string
  // in the form "X.X.X"