Loop Iteration

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • RaH

    #1

    Loop Iteration

    Hello.

    I am writing a script to parse my logfiles to monitor sshd attempted
    logins. I know I'm reinventing the wheel, but it's something I want
    to do. The problem I am having is that upon the 4th or 5th pass in my
    for statement I recieve an error
    AttributeError: 'NoneType' object has no
    attribute 'group'When I tested against a smaller
    version of my logs that contained roughly 8 ip's (one ip appears 6
    times another 2) it works fine without the AttributeError.

    My question is if it is in my implementation of RE or could it be a
    memory issue?

    This is a sample of what the log looks like [code:1:eaa29624 42]
    Dec 25 11:30:17 linux sshd[2198]: Received
    disconnect from ::ffff:200.91.1 2.4: 11: Bye Bye
    Dec 25 11:30:18 linux sshd[2199]:
    input_userauth_ request: illegal user sibylla
    Dec 25 11:30:18 linux sshd[2199]: Could not
    reverse map address 200.91.12.4.
    Dec 25 11:30:18 linux sshd[2199]: Failed password
    for illegal user sibylla from ::ffff:200.91.1 2.4 port
    55697 ssh2[/code:1:eaa29624 42]

    Actual script[code:1:eaa29624 42]
    import re, string

    def main():
    match = 'Failed password for illegal user'
    pattern = re.compile(matc h)
    f = open('xaf', 'r')

    instance = 0
    for line in f:
    if pattern.findall (line):
    this = re.sub(
    r'^([a-zA-Z]+)\s*([0-9]+)\s*([0-9]+):([0-9]+):([0-9]+)\s*([a-z]+)\s*([a-z]+)\s*([^0-9]+)\s*([0-9]+)\s*([^0-9]+)',
    '', line, 1)

    ip =
    re.match(r'^(?P <ip>([0-9]+).([0-9]+).([0-9]+).([0-9]))',
    this)

    of = open("out.txt", 'a')
    print ip.group('ip')
    instance = instance + 1
    of.close()
    f.close()

    if instance != 0:
    print "%s match(s) found for Failed password for
    illegal user" % instance


    if __name__ == "__main__":
    main()
    [/code:1:eaa29624 42]

  • Steven D'Aprano

    #2
    Re: Loop Iteration

    On Wed, 21 Dec 2005 18:05:22 +0000, RaH wrote:
    [color=blue]
    > Hello.
    >
    > I am writing a script to parse my logfiles to monitor sshd attempted
    > logins. I know I'm reinventing the wheel, but it's something I want
    > to do. The problem I am having is that upon the 4th or 5th pass in my
    > for statement I recieve an error
    > AttributeError: 'NoneType' object has no
    > attribute 'group'[/color]

    At an interactive prompt, type help(re.match) and you will get:


    match(pattern, string, flags=0)
    Try to apply the pattern at the start of the string, returning
    a match object, or None if no match was found.


    When there is no match, your loop tries to call None.group. None has no
    group attribute, just like the error message says.


    --
    Steven.

    Comment

    Working...