IPCalcCheckSubnetCollision

An automation script to return subnet collision result.

python · Community Common Scripts

Source

import demistomock as demisto  # noqa: F401
from CommonServerPython import *  # noqa: F401

from CommonServerUserPython import *

import ipaddress
import traceback


""" COMMAND FUNCTION """


def return_check_collision_command(args: Dict[str, Any]) -> CommandResults:
    subnet1 = ipaddress.IPv4Network(args.get("subnet_one", None), strict=False)
    subnet2 = ipaddress.IPv4Network(args.get("subnet_two", None), strict=False)

    collision_result = subnet1.overlaps(subnet2)

    collision_object = {"subnet1": format(subnet1), "subnet2": format(subnet2), "collision": collision_result}

    readable_output = tableToMarkdown(t=collision_object, name="Collision Check")

    return CommandResults(
        outputs_prefix="IPCalc.IP.Collision",
        outputs_key_field="",
        readable_output=readable_output,
        outputs=collision_object,
    )


""" MAIN FUNCTION """


def main():
    try:
        return_results(return_check_collision_command(demisto.args()))
    except Exception as ex:
        demisto.error(traceback.format_exc())
        return_error(f"Failed to execute IPCalcCheckSubnetCollision. Error: {str(ex)}")


""" ENTRY POINT """


if __name__ in ("__main__", "__builtin__", "builtins"):
    main()

README

An automation script to return subnet collision result

Script Data


Name Description
Script Type python3
Tags  
Cortex XSOAR Version 6.0.0

Inputs


Argument Name Description
subnet_one First subnet
subnet_two Second subnet

Outputs


Path Description Type
IPCalc.IP.Collision.subnet1 Collission first subnet String
IPCalc.IP.Collision.subnet2 Collission second subnet String
IPCalc.IP.Collision.collision Collission result String

Script Example

!IPCalcCheckSubnetCollision subnet_one=192.169.20.10/28 subnet_two=192.169.20.11

Context Example

{
    "IPCalc": {
        "IP": {
            "Collision": {
                "collision": true,
                "subnet1": "192.169.20.0/28",
                "subnet2": "192.169.20.11/32"
            }
        }
    }
}

Human Readable Output

Collision Check

collision subnet1 subnet2
true 192.169.20.0/28 192.169.20.11/32