Loop Iteration

Discussion in 'Python' started by RaH, Dec 21, 2005.

  1. RaH

    RaH Guest

    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:eaa2962442]
    Dec 25 11:30:17 linux sshd[2198]: Received
    disconnect from ::ffff:200.91.12.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.12.4 port
    55697 ssh2[/code:1:eaa2962442]

    Actual script[code:1:eaa2962442]
    import re, string

    def main():
    match = 'Failed password for illegal user'
    pattern = re.compile(match)
    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:eaa2962442]
    RaH, Dec 21, 2005
    #1
    1. Advertising

  2. On Wed, 21 Dec 2005 18:05:22 +0000, RaH wrote:

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


    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.
    Steven D'Aprano, Dec 21, 2005
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. dwerdna
    Replies:
    5
    Views:
    5,314
    Ajeetha
    Mar 31, 2005
  2. Danny Anderson

    open new file each loop iteration

    Danny Anderson, Jan 21, 2004, in forum: C++
    Replies:
    0
    Views:
    430
    Danny Anderson
    Jan 21, 2004
  3. Rudi
    Replies:
    5
    Views:
    4,962
  4. Nene
    Replies:
    6
    Views:
    340
    John W. Krahn
    Dec 13, 2008
  5. Isaac Won
    Replies:
    9
    Views:
    349
    Ulrich Eckhardt
    Mar 4, 2013
Loading...

Share This Page