Skip to content
Snippets Groups Projects
Select Git revision
  • 2e1ed6d6a70534679e8c89ca38b4a738e700f51a
  • master default
  • fix-remote-url
  • fix-remote-url_v4.10.0
  • fix-remote-url_v4.9.1
  • fix-remote-url_v4.8.3
  • fix-remote-url_v4.8.x
  • fix-remote-url_v4.7.x
  • fix-remote-url_v4.6.0
  • fix-remote-urls
  • hsh-v4.11.0
  • v4.11.0
  • v4.10.0
  • v4.9.1
  • v4.9.0
  • v4.8.5
  • v4.8.4
  • v4.8.3
  • v4.8.2
  • v4.8.1
  • v4.8.0
  • iss1063
  • v4.7.0
  • v4.6.0
  • dev-4.6.0-pre-tidy
  • v4.5.0-hf2
  • v4.5.0-hf1
  • v4.5.0
  • v4.4.6
  • v4.4.5
30 results

deploy.php

Blame
  • rejects.py 972 B
    # Analyze milter log to find abusers
    
    fp = open('/var/log/milter/milter.log','r')
    subdict = {}
    ipdict = {}
    spamcnt = {}
    for line in fp:
      a = line.split(None,4)
      if len(a) < 4: continue
      dt,tm,id,op = a[:4]
      if op == 'Subject:':
        if len(a) > 4: subdict[id] = a[4].rstrip()
      elif op == 'connect':
        ipdict[id] = a[4].rstrip()
      elif op in ('eom','dspam'):
        if id in subdict: del subdict[id]
        if id in ipdict: del ipdict[id]
      elif op in ('REJECT:','DSPAM:','SPAM:','abort'):
        if id in subdict:
          if id in ipdict:
            ip = ipdict[id]
    	del ipdict[id]
    	f,host,raw = ip.split(None,2)
    	if host in spamcnt:
    	  spamcnt[host] += 1
    	else:
    	  spamcnt[host] = 1
          else: ip = ''
          print dt,tm,op,a[4].rstrip(),subdict[id]
          del subdict[id]
        else:
          print line.rstrip()
    print len(subdict),'leftover entries'
    
    spamlist = filter(lambda x: x[1] > 1,spamcnt.items())
    spamlist.sort(lambda x,y: x[1] - y[1])
    for ip,cnt in spamlist:
      print cnt,ip