Browse Source

Merge pull request #4 from majestrate/master

add flask app for serving router info blacklist
pull/7/head
Jeff 8 years ago committed by GitHub
parent
commit
8d4f1ab998
  1. 2
      baddiefinder/baddiefinder/__main__.py
  2. 37
      baddiefinder/baddiefinder/web.py
  3. 3
      baddiefinder/baddies.ini
  4. 3
      baddiefinder/requirements.txt

2
baddiefinder/baddiefinder/__main__.py

@ -17,7 +17,7 @@ def main(): @@ -17,7 +17,7 @@ def main():
args = ap.parse_args()
s = settings.load(args.settings)
fmax = s.get("thresholds", "max_floodfills_per_ip", fallback=5)
fmax = s.get("thresholds", "max_floodfills_per_ip", fallback=3)
f = filter.FloodfillFilter(fmax)
p = processor.BaddieProcessor([f])
netdb.inspect(p.hook)

37
baddiefinder/baddiefinder/web.py

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
import flask
import io
import netdb
from . import settings
from . import filter
from . import processor
app = flask.Flask(__name__)
@app.route("/baddies.txt")
def baddies():
s = settings.load('baddies.ini')
fmax = s.get("thresholds", "max_floodfills_per_ip", fallback=3)
f = filter.FloodfillFilter(fmax)
p = processor.BaddieProcessor([f])
path = s.get("netdb", "dir", fallback=None)
if path:
netdb.inspect(p.hook, path)
else:
netdb.inspect(p.hook)
body = io.StringIO()
p.write_blocklist(body)
v = body.getvalue()
body.close()
r = flask.Response(v)
r.headers["Content-Type"] = 'text/plain'
return r
@app.route("/")
def index():
return """this server serves a router info blocklist of ip addresses with unreasonably high desnity of i2p routers (right now just floodfills)
"""
if __name__ == '__main__':
app.run()

3
baddiefinder/baddies.ini

@ -1,2 +1,5 @@ @@ -1,2 +1,5 @@
[thresholds]
max_floodfills_per_ip = 3
#[netdb]
#dir=/var/lib/i2p/netdb

3
baddiefinder/requirements.txt

@ -1,2 +1 @@ @@ -1,2 +1 @@
python-geoip
python-geoip-geolite2
flask

Loading…
Cancel
Save