DHCP Server Dump (Export) - Sorting IP using RegEx
-
Re: Can I sort IP addresses in numeric value
When creating DHCP reservations, Microsoft stores them as they are created. The result leads to exports being out of IP sequential order. Here is an alternative solution to my previous (https://community.notepad-plus-plus.org/post/26434).
The alternative method pads the IP with leading Zeros with “undo” option to target just those changes. The prior solution used an
\x23
(ASCII 23 hash ‘#’) as a RegEx group substitution. However, the “unpad” (undo) I referenced would also remove comments in DHCP dump file, breaking it for importing later.Re: (https://community.notepad-plus-plus.org/post/25048)
Kudos for the extensibility : @guy038 and @Scott-SumnerHere’s my new workflow to DHCP Server: export, pad, sort, unpad, import
- Export
netsh dhcp server dump > "DHCP_Server_Export_%date:~10,4%.%date:~4,2%.%date:~7,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%.%time:~9,2%.txt
-
Pad (Notepad++ RegEx)
Select Text between “ReservedIp to the Scope”
RegEx Replace All In Selection
SEARCHreservedip ((\d)?(\d)?\d)\.((\d)?(\d)?\d)\.((\d)?(\d)?\d)\.((\d)?(\d)?\d)
REPLACEreservedip (?2:0)(?3:0)$1.(?5:0)(?6:0)$4.(?8:0)(?9:0)$7.(?11:0)(?12:0)$10
The above effectively changes IP such as 172.20.20.7 --> 172.020.020.007 -
Sort (Notepad++ TextFX Tools)
While selection is highlighted, “Sort lines case sensitive (at column)” -
UnPad (Notepad++ RegEx)
While selection is highlighted,
RegEx Replace All In Selection
SEARCHreservedip 0*(\d{1,3})\.0*(\d{1,3})\.0*(\d{1,3})\.0*(\d{1,3})
REPLACEreservedip $1.$2.$3.$4
The above is needed sincenetsh exec
on script import script file (step 6) fails with IPs having leading zeros. Unfortunate. -
Remove/Purge (PowerShell)
Save/SaveAs Exported Text file as “DHCP_Server_Import…”
Open PowerShell ISE as Administrator (replace ‘x’ as applicable)
Remove-DhcpServerv4Reservation -ComputerName "xxxx.xxx.local" -ScopeId 192.168.xx.0
- Import (CMD)
Open elevated Command Prompt
netsh exec "DHCP_Server_Import..."
Refresh DHCP tree and reservations are now in order (matching Import file).
Hope this helps someone.