# Symmetric Difference Print the IPs that exist in either A or B, but **not both**. **Aliases**: `--diff`, `--diff-next` ## How it works This is a **positional** operation: 1. All files before `--diff` are merged into set **A** 2. All files after `--diff` are merged into set **B** 3. The output is (A - B) union (B - A) — the XOR of the two sets **Exit code**: 0 if the sets are identical (no output), 1 if there are differences. This makes `--diff` useful in scripts to detect changes. ## Examples Compare two versions of a blocklist: ``` # before.txt # after.txt 10.0.0.0/24 10.0.0.0/24 10.0.1.0/24 10.0.1.0/25 # shrunk 10.0.2.0/24 10.0.2.0/24 10.0.3.0/24 # added ``` ``` $ iprange before.txt --diff after.txt 10.0.1.128/25 10.0.3.0/24 ``` The output shows `10.0.1.128/25` (the upper half of the /24 that was shrunk to a /25) and `10.0.3.0/24` (newly added). The two entries that remained identical are excluded. **Exit code check**: ``` $ iprange before.txt --diff after.txt 10.0.1.128/25 10.0.3.0/24 $ echo $? 1 ``` ``` $ iprange before.txt --diff before.txt $ echo $? 0 ``` **Quiet mode** — suppress output, only check exit code: ``` $ iprange before.txt --diff after.txt --quiet $ echo $? 1 ```