EPIDEMIASH
@EPIDEMIASH
Человек швейцарский нож

Как обезличивают логи?

В общем (в моей голове) стоит задача, обезличить большой лог от ip адресов, хостов, логинов и тд.

1) Поиск ip: так как какой-то определенной базы нет и нужен универсальный поиск, решил воспользоваться регуляркой по типу:

Regex ip = new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");


Со своей задачей справляется, есть маленький вопрос, как заменить в строке только найденный IP?

2) Хосты и логины нахожу по первым символам, все успешно. Но вопрос такой же почти, через Replace без труда могу заменить, но как это сделать к примеру с заменой на +4 символа? Или лучше до первого найденного пробела найденного значения?
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
EPIDEMIASH
@EPIDEMIASH Автор вопроса
Человек швейцарский нож
Отвечаю сам на свой вопрос.

Маски, которые использую:
1) Для поиска IP Regex ip = new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
2) Для поиска хостов (моего вида) Regex host = new Regex(@"[a-zA-Z0-9]{3}-(w*\S+)");
3) Для поиска логинов 2х видов @"(\w*)login(\w*\S+\s)" и @"l[0-9]{3}(\w*\S+\s)"

По сути этого более чем достаточно, так как у меня в логах используются только ip\хосты и логины.

Сразу заменить можно в цикле

foreach (Match mat in matches)
{
line.Replace(mat.Value, "Конф.информация")
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Notepad++ в нём можно многое и сразу
Ответ написан
Комментировать
@vitaly_il1
DevOps Consulting
Я бы поискал готовые утилиты вместо того чтобы самому сочинять regex-ы.
За пару минут я не нашел что-то конкретное, но наверняка есть.
https://aircloak.com/top-5-free-data-anonymization...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы