initial version

but working
This commit is contained in:
sko
2025-02-27 14:41:13 +01:00
parent 2afe78d024
commit d5d189f340
5 changed files with 87 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
3.13
+12
View File
@@ -0,0 +1,12 @@
# logfile Country resolver
## Use like
```bash
cat access_crowdsec.log | stdbuf -o0 grep "/search" | grep -v "Safari/" | stdbuf -o0 /tmp/resolver | stdbuf -o0 egrep "Russia|Belarus|^SA|^AS|^AF" > block_20250227.txt
cscli decisions delete --all; cat block_20250227.txt | cut -d"|" -f3 | perl -ne 's/(\d+)\.(\d+)\..*/$1.$2/; print ' | uniq | perl -ne 'chomp;print $_,".0.0/16\n"' | cscli decisions import -i - --format values -d48h -R toomuch_AS_SA_AF
```
## packaging
`pyinstaller --onefile resolv.py`
+7
View File
@@ -0,0 +1,7 @@
[project]
name = "filter-geo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env python3
# coding: utf-8
import geoip2.database
import sys
from collections import defaultdict
reader = geoip2.database.Reader("./dbip-country-lite-2025-02.mmdb")
try:
with sys.stdin as file:
for rec in file:
try:
parts = rec.strip().split(" ")
ip = parts[0]
from_country = None
from_continent = None
try:
from_continent = reader.country(ip).continent.code
from_country = reader.country(ip).country.name
except geoip2.errors.AddressNotFoundError:
from_country = "Unknown"
print("{}|{}|{}".format(from_continent, from_country, "|".join(parts)))
except:
pass
except KeyboardInterrupt:
exit(0)
except:
raise
+38
View File
@@ -0,0 +1,38 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['resolver.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='resolver',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)