有如下log文件,请打印出独立IP,并统计独立IP数,
log文件内容:
218.79.251.215 - - [23/May/2006:08:57:44 +0800] "GET /fg172.exe HTTP/1.1" 206 2350253
220.178.150.3 - - [23/May/2006:08:57:40 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253
59.42.2.185 - - [23/May/2006:08:57:52 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253
219.140.190.130 - - [23/May/2006:08:57:59 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253
221.228.143.52 - - [23/May/2006:08:58:08 +0800] "GET /fg172.exe HTTP/1.1" 206 719996
221.228.143.52 - - [23/May/2006:08:58:08 +0800] "GET /fg172.exe HTTP/1.1" 206 713242
运行结果:
log文件内容:
218.79.251.215 - - [23/May/2006:08:57:44 +0800] "GET /fg172.exe HTTP/1.1" 206 2350253
220.178.150.3 - - [23/May/2006:08:57:40 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253
59.42.2.185 - - [23/May/2006:08:57:52 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253
219.140.190.130 - - [23/May/2006:08:57:59 +0800] "GET /fg172.exe HTTP/1.1" 200 2350253
221.228.143.52 - - [23/May/2006:08:58:08 +0800] "GET /fg172.exe HTTP/1.1" 206 719996
221.228.143.52 - - [23/May/2006:08:58:08 +0800] "GET /fg172.exe HTTP/1.1" 206 713242
221.228.143.52 - - [23/May/2006:08:58:09 +0800] "GET /fg172.exe HTTP/1.1" 206 1200250
log文件名为log.txt
#!/usr/bin/python
fd = open("log.txt")
ipDict = {}
for line in fd:
for i in range( len(line) ):
if line[i] == ' ':
flag = i
break
if ipDict.has_key( line[:flag] ) == False:
ipDict[ line[:flag] ] = 1
else:
ipDict[ line[:flag] ] += 1
ipNum = 0
print "%-15s%s" % ("IP", "Number")
for key in ipDict.keys():
print "%-15s%3d" % ( key, ipDict[ key ] )
ipNum += 1
print "Total client number: %d" % ipNum
fd.close()
运行结果:
IP Number
220.178.150.3 1
59.42.2.185 1
221.228.143.52 3
219.140.190.130 1
218.79.251.215 1
Total client number: 5