|
if you have python, here's an alternative:
assuming sample input is :
code:
tcp out 64.233.161.99:80 in 192.168.18.52:46778 idle 0:00:00 bytes 1657961 flags uio
tcp out 209.104.39.15:80 in 192.168.18.34:52859 idle 0:06:34 bytes 1026 flags ufrio
tcp out 64.233.161.104:80 in 192.168.18.19:54409 idle 0:00:02 bytes 498219 flags uio
tcp out 209.104.39.15:80 in 192.168.18.22:52154 idle 0:00:01 bytes 1000 flags ufrio
tcp out 64.233.161.99:80 in 192.168.18.49:40441 idle 0:00:05 bytes 60293 flags uio
tcp out 64.233.161.147:80 in 192.168.18.49:41745 idle 0:00:05 bytes 1557863 flags uio
code:
#!/usr/bin/python
outside = {} #store outside ip address
inside = {} #store inside ip address
for line in open("cisco.log"):
line = line.split()
out = line[2].split(":")[0] #get out ip address, stripping the port number
ins = line[4].split(":")[0] #get inside ip address, stripping the port number
if not outside.has_key(out): #if ip address hasn't been seen
outside[out] = 1 # initial count to 1
else:
outside[out] = outside[out] + 1 #add count
if not inside.has_key(ins):
inside[ins] = 1
else:
inside[ins] = inside[ins] + 1 #add count
print "printing count of outside ips ...."
for i,k in outside.iteritems():
print "ip: %s , count: %d" % (i,k)
print "printing count of inside ips...."
for i,k in inside.iteritems():
print "ip: %s , count: %d" % (i,k)
output:
code:
printing count of outside ips....
ip : 64.233.161.99 , count: 2
ip : 64.233.161.147 , count: 1
ip : 209.104.39.15 , count: 2
ip : 64.233.161.104 , count: 1
printing count of inside ips....
ip: 192.168.18.52 , count: 1
ip: 192.168.18.34 , count: 1
ip: 192.168.18.49 , count: 2
|