• Login
Community
  • Login

how Find the specific IP in the IP list in notpad++

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
8 Posts 4 Posters 1.6k 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.
  • T
    The Best Of Voice
    last edited by Nov 30, 2020, 2:48 PM

    hi guys
    i want find the specific IP in the IP list for example my list ip

    95.110.175.247
    156.54.22.245
    156.54.169.185
    185.63.52.110
    156.54.172.100
    185.148.108.97
    95.110.129.163
    88.42.240.186
    95.141.40.109
    79.1.194.161
    188.15.252.240
    80.211.38.119
    185.152.253.206
    151.73.164.65
    156.54.180.88
    128.116.133.119

    i want find example ip begain with 185.150.. (* mean 0-255)

    resualt my list

    185.152.253.206

    find resualt 185.(number larg of 150 to 255 ).(any number 0-255).(any number 0-255)
    thanks for help me and sorry my bad english

    A 1 Reply Last reply Nov 30, 2020, 3:23 PM Reply Quote 0
    • A
      astrosofista @The Best Of Voice
      last edited by Nov 30, 2020, 3:23 PM

      Hi @The-Best-Of-Voice

      Try the following regex:

      Search: ^185\.(1[5-9][0-9]|2[0-4]\d|25[0-5])(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){2}$
      

      Have fun!

      1 Reply Last reply Reply Quote 2
      • G
        guy038
        last edited by guy038 Nov 30, 2020, 6:17 PM Nov 30, 2020, 6:14 PM

        Hello, @the-best-of-voice, @astrosofista and All,

        Your regex does the job nicely !

        I take this opportunity to point out another method. The idea is to define the regex which finds any individual byte of an IPV4 address, in a group, so the regex (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d) and use it to search the overall address with the regex \b(?#)(\.(?#)){3}\b where (?#) is a subroutine call to group #

        So the regex to search any valid IPV4 address is :

        (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(*F)|\b(?1)(\.(?1)){3}\b

        This regex is composed of two alternatives :

        • (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(*F) which defines an individual byte of an IPV4 address as group 1 The important fact is that this definition is followed with the (*F) backtracking control verb ( or (*FAIL) )

        • \b(?1)(\.(?1)){3}\b which searches for the complete IPV4 address

        So the regex engine first stores the definition of the individual byte in group 1 and, as it meets the (*F) syntax, the current match is considered unsuccessful. Then the regex engine tries out if other match attempts are possible and it tests the second alternative. Note that the subroutine call (?1) is STILL  defined, although the first alternative was cancelled because of the (*F) backtracking control verb

        Refer here for additional information about these special verbs

        In a nutshell :

        • (?1) represents an individual byte of an IPV4 address 25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d

        • The second alternative is just equivalent to the regex (?1)\.(?1)\.(?1)\.(?1) between two \b boundaries and does find any valid IPV4 address


        Now, to solve the OP problem and using the same idea as above, we’ll use the following regex S/R :

        SEARCH (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(*F)|\b185\.(25[0-5]|2[0-4]\d|1[5-9]\d)\.(?1)\.(?1)\b

        Best Regards,

        guy038

        A A 2 Replies Last reply Nov 30, 2020, 7:56 PM Reply Quote 3
        • A
          astrosofista @guy038
          last edited by Nov 30, 2020, 7:56 PM

          Hi @guy038

          Very nice, thank you. I have saved it and hope to apply it soon.

          Have fun!

          1 Reply Last reply Reply Quote 1
          • A
            Alan Kilborn @guy038
            last edited by Alan Kilborn Dec 1, 2020, 2:04 PM Dec 1, 2020, 2:04 PM

            @guy038 said in how Find the specific IP in the IP list in notpad++:

            (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(*F) which defines an individual byte of an IPV4 address as group 1 The important fact is that this definition is followed with the (*F) backtracking control verb ( or (*FAIL) )

            Interesting use of (*FAIL), Guy.

            After looking at that in detail, it rather surprises me that you used “fail”, rather than "define"ing:

            (?(DEFINE)(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))\b(?1)(\.(?1)){3}\b

            Maybe you were having a “fail” kind of day rather than a “define” kind of day!
            If so, I’m sorry to hear that! :-)

            Or maybe you were just presenting a different spin on the IP address parsing technique – perhaps you’ve shown that one before using “define” (I can’t recall).

            1 Reply Last reply Reply Quote 2
            • G
              guy038
              last edited by guy038 Dec 1, 2020, 3:39 PM Dec 1, 2020, 3:02 PM

              Hi @alan-kilborn,

              No, be reassured, this fortunately has nothing to do with my mood ;-)))

              And, in the Remark section of this post, I do speak about the (DEFINE) method and about my personal method, too !

              Indeed, there are three means to achieve the same thing :

              • (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(*F)|Regex to match

              • (?(DEFINE)(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))Regex to match

              • (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)Unknown char / string|Regex to match


              The last syntax, that I discovered, should help you to understand how the (*F) backtracking control verb acts !

              In this last syntax the Unknown char / string is any character or string which is not present in current file scanned. Thus, necessarily, the first alternative (25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)Unknown char / string will never match !

              But, and this is the key point, the regex engine always tries this alternative, first and always defines the group 1, for further use, in the second alternative, assuming that you’re using a subroutine call to group 1, in the second alternative ;-))

              Best Regards,

              guy038

              A 1 Reply Last reply Dec 1, 2020, 6:23 PM Reply Quote 1
              • A
                Alan Kilborn @guy038
                last edited by Dec 1, 2020, 6:23 PM

                @guy038 said in how Find the specific IP in the IP list in notpad++:

                the last syntax, that I discovered, should help you to understand how the (*F) backtracking control verb acts !

                Well, I think I understand the usage, but I also think the “define” version, which also works, makes more intuitive sense. But I could be missing the point, I suppose. :-)

                1 Reply Last reply Reply Quote 0
                • G
                  guy038
                  last edited by Dec 1, 2020, 6:46 PM

                  Hi, @alan-kilborn and All,

                  I’m totally agree with you. The legal syntax is, indeed, the special conditional syntax ((?(DEFINE)...........). Just think about the word DEFINE, in upper case !

                  Then, an alternative syntax could be, of course, (............)(*F). Indeed, in manuals, the DEFINE part is described as a part of regex which does never match anything, by principle !

                  Finally, my syntax ( the third one ), although correct, should be considered as a user’s work-around !

                  Cheers,

                  guy038

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