Comments 4
По утверждению 2ip адреса подсети 77.72.82.0/24 розданы бритам
Для геолокации использовал www.npmjs.com/package/geoip-local в нём могут быть неполные/неактуальные данные, тк. юзается бесплатна база.
Вам лучше взять www.npmjs.com/package/maxmind и накидать простой postinstall скрипт, который будет скачивать geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz и распаковывать в рабочую директорию. Тогда у вас будет всегда актуальная локальная GeoIP база данных.
Спасибо за статью! Использую ваш код как отправную точку для своего эксперимента. Смутила вот эта строчка:
вроде должно быть наоборот:
Так же ни в одной строчке не будет \n после split('\n'), так что можно не проверять:
В итоге пришел к такому варианту (как раз последняя строка в массиве будет пустой, если весь кусок данных оканчивается \n):
Еще заметил, что такой spawn копит данные по 4-8Кб, что мне не подходит, потому что я хочу сразу увидеть пакет. поэтому переписал spawn по примеру stackoverflow.com/a/27360991/1276731 на:
lines[ 0 ] = lines[ 0 ] + lastTcpLine;
вроде должно быть наоборот:
lines[ 0 ] = lastTcpLine + lines[ 0 ];
Так же ни в одной строчке не будет \n после split('\n'), так что можно не проверять:
if( lines[ lastTcpLineNum ].indexOf('\n') == -1 )
В итоге пришел к такому варианту (как раз последняя строка в массиве будет пустой, если весь кусок данных оканчивается \n):
let lastTcpLine = '';
tcpdump.stdout.on('data', data=>{
let lines = `${lastTcpLine}${data}`.split('\n');
lastTcpLine = lines.pop();
lines.map(line=>console.log(line));
});
Еще заметил, что такой spawn копит данные по 4-8Кб, что мне не подходит, потому что я хочу сразу увидеть пакет. поэтому переписал spawn по примеру stackoverflow.com/a/27360991/1276731 на:
spawn('stdbuf', ['-oL', '-eL', 'tcpdump', '-n'])
Sign up to leave a comment.
Honeypot- логгер на nodejs и tcpdump