Loop Iteration

RaH pg_vlad at hotmail-dot-com.no-spam.invalid
Wed Dec 21 13:05:22 EST 2005


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]




More information about the Python-list mailing list