Community
    • Login

    DHCP Server Dump (Export) - Sorting IP using RegEx

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    1 Posts 1 Posters 923 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.
    • Gabriel CunninghamG Offline
      Gabriel Cunningham
      last edited by

      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

      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

      With your input, this post could be even better 💗

      Register Login
      • First post
        Last post
      The Community of users of the Notepad++ text editor.
      Powered by NodeBB | Contributors