host.go
func (h Host) Diff(altHost Host) (added []Port, removed []Port) {
	targetPorts := h.Ports
	altPorts := altHost.Ports

	addedWithClosed := array.Except(altPorts, targetPorts).([]Port)
	for _, add := range addedWithClosed {
		if add.State != "closed" {
			added = append(added, add)
		}
	}
	removedWithClosed := array.Except(targetPorts, altPorts).([]Port)
	for _, remove := range removedWithClosed {
		if remove.State != "closed" {
			removed = append(removed, remove)
		}
	}

	return
}
func (h Host) Diff(altHost Host) (added []Port, removed []Port) {
	targetPorts := h.Ports
	altPorts := altHost.Ports

	addedWithClosed := array.Except(altPorts, targetPorts).([]Port)
	for _, add := range addedWithClosed {
		if add.State != "closed" {
			added = append(added, add)
		}
	}
	removedWithClosed := array.Except(targetPorts, altPorts).([]Port)
	for _, remove := range removedWithClosed {
		if remove.State != "closed" {
			removed = append(removed, remove)
		}
	}

	return
}
// Diff gets the difference between the the target host and the argument host.
//The first returned value is the added ports and the second returned value is
// the removed ports.