IPNetwork
Gather information regarding CIDR - 1. Broadcast_address 2. CIDR 3. First_address 4. Last address 5. Max prefix len 6. Num addresses 7. Private 8. Version.
python · Common Scripts
Source
# STD imports import ipaddress import demistomock as demisto # noqa: F401 from CommonServerPython import * # noqa: F401 # Local imports def ip_cidr(cidr: str) -> dict[str, str]: """Gather info regarding the supplied network Args: cidr(str): IPv4/CIDR or IPv6/CIDR Returns: dict: Entry context of single network """ try: ip_network = ipaddress.ip_network(cidr, strict=False) internal_ec = { "CIDR": cidr, "Version": ip_network.version, "Private": ip_network.is_private, "Max_prefix_len": ip_network.max_prefixlen, "Num_addresses": ip_network.num_addresses, "Broadcast_address": str(ip_network.broadcast_address), "First_address": str(ip_network[0]), "Last_address": str(ip_network[-1]), } return internal_ec # type: ignore except ValueError: return {} def cidr_command(args: dict[str, str]) -> CommandResults: # pragma: no cover """Perform command on given IP/CIDR Args: args: argument from command runnning in demisto Returns: """ cidr_list = argToList(args.get("cidr")) ec = [ip_cidr(cidr) for cidr in cidr_list] markdown = tableToMarkdown(name=f'CIDR - {args.get("cidr")}', t=ec, removeNull=True) return CommandResults(outputs_prefix="Network", outputs=ec, readable_output=markdown) def main(): # pragma: no cover try: return_results(cidr_command(demisto.args())) except Exception as ex: return_error(f"Failed to execute IPNetwork script. Error: {ex!s}") if __name__ in ("__main__", "__builtin__", "builtins"): main()
README
Gather information regarding CIDR -
1. Broadcast_address
2. CIDR
3. First_address
4. Last address
5. Max prefix len
6. Num addresses
7. Private
8. Version
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | ip |
| Cortex XSOAR Version | 5.0.0 |
Inputs
| Argument Name | Description |
|---|---|
| cidr | IP/CIDR, e.g. 192.168.0.0/24 |
Outputs
| Path | Description | Type |
|---|---|---|
| Network.CIDR | Network CIDR. | String |
| Network.Num_addresses | Number of availble addresses in the CIDR. | Number |
| Network.First_address | First address in the network CIDR. | String |
| Network.Last_address | Last address in the network CIDR. | String |
| Network.Version | Version of IP. | Number |
| Network.Private | True if IP is private. | Boolean |
| Network.Max_prefix_len | Max prefix length of CIDR. | Number |
| Network.Broadcast_address | Broadcast address of CIDR. | String |