• Login
Community
  • Login

DHCP Server Dump (Export) - Sorting IP using RegEx

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
1 Posts 1 Posters 672 Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G
    Gabriel Cunningham
    last edited by Aug 18, 2020, 5:59 PM

    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-Sumner

    Here’s my new workflow to DHCP Server: export, pad, sort, unpad, import

    1. 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
    
    1. Pad (Notepad++ RegEx)
      Select Text between “ReservedIp to the Scope”
      RegEx Replace All In Selection
      SEARCH reservedip ((\d)?(\d)?\d)\.((\d)?(\d)?\d)\.((\d)?(\d)?\d)\.((\d)?(\d)?\d)
      REPLACE reservedip (?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

    2. Sort (Notepad++ TextFX Tools)
      While selection is highlighted, “Sort lines case sensitive (at column)”

    3. UnPad (Notepad++ RegEx)
      While selection is highlighted,
      RegEx Replace All In Selection
      SEARCH reservedip 0*(\d{1,3})\.0*(\d{1,3})\.0*(\d{1,3})\.0*(\d{1,3})
      REPLACE reservedip $1.$2.$3.$4
      The above is needed since netsh exec on script import script file (step 6) fails with IPs having leading zeros. Unfortunate.

    4. 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
    
    1. 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.

    1 Reply Last reply Reply Quote 2
    1 out of 1
    • First post
      1/1
      Last post
    The Community of users of the Notepad++ text editor.
    Powered by NodeBB | Contributors