Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288

Парсинг лога

11.01.2018, 12:45. Показов 8407. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Прошу помощи профессионалов. Нужен скрипт который распарсит лог:

1) Берём название файла который лежит в папке $filename = (Get-ChildItem -Path C:\badmassenges).Name
2) Обходим каждую папку в C:\test\* в которой находится лог, название которого текущая дата в формате yyy-MM-dd
$date = get-date -Format yyyy-MM-dd (в каждой папке находится лог с именем текущей даты)
"C:\test\*\$date.log"
3) по названию файла, который будет лежать в C:\badmassenges\telegramma.txt , находим в логе, например который будет лежать в C:\test\trace\2018-01-11.log, строчку:

11.01.2018 08:42:57.069 ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.

которая будет содержать error и название файла и выкусывать из неё полный путь, например C:\test\trace\telegramma.txt

Пример лога:

11.01.2018 08:42:56.662 INFO Ресурс назначения доступен
11.01.2018 08:42:56.662 INFO Считываю сообщения
11.01.2018 08:42:56.678 INFO [Файловая система] Поиск файлов в каталоге 'C:\test\trace\'
11.01.2018 08:42:56.678 INFO [Файловая система] Найден файл 'C:\test\trace\telegramma.txt'
11.01.2018 08:42:56.678 INFO [Файловая система] Доступно для считывания 1 сообщений.
11.01.2018 08:42:56.897 WARN [Файловая система] Файл C:\test\trace\telegramma.txt содержится в списке игнорируемых сообщений и не будет обработан
11.01.2018 08:42:56.897 INFO [Файловая система] Считано 1 сообщений.
11.01.2018 08:42:57.069 WARN Найдены сообщения, вызывающие ошибку во время обработки
11.01.2018 08:42:57.069 ERROR Описания ошибок:
11.01.2018 08:42:57.069 ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
11.01.2018 08:42:57.115 ERROR Сообщение 'telegramma.txt' перенесено в директорию для ошибочных сообщений С:\badMessages
11.01.2018 08:42:57.990 INFO Откатываю транзакцию
11.01.2018 08:42:57.990 INFO [Файловая система] Откат транзакции
11.01.2018 08:42:57.990 INFO [Файловая система] Начинаю удаление файла 'C:\test\trace\telegramma.txt'
11.01.2018 08:42:57.990 INFO [Файловая система] Убираю атрибуты файла
11.01.2018 08:42:57.990 INFO [Файловая система] Удаляю файл
11.01.2018 08:43:03.053 INFO Начинаю транзакцию
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2018, 12:45
Ответы с готовыми решениями:

Парсинг лога
Есть скрипт: gci C:\1 |?{!($_.psiscontainer)} | %{gc "C:\temp.log" | sls -pattern $($_.Name)} Строчки с именем фалов то на ходит,...

Проверка лога
Помогите пожалуйста в написании скрипта. Логика такая, необходимо мониторить состояние подключения сервиса через парсинг лога. Имеется...

Парсер лога
Прошу помощи в написании скрипта: Необходимо распарсить лог C:\Windows\WindowsUpdate.log. Поскольку лог пишется сверху вниз то с...

37
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.01.2018, 13:36
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Во время выполнения скрипта в лог пишет программа, поэтому при выполнении скрипта такая ошибочка, чтобы работало приходится останавливать службу сервиса
Тогда, вместо [System.IO.File] можно попробовать использовать обычный Get-Content (кажется мне это помогало в обработке активного IIS-лога).

Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Я не учёл тот факт, что в логе строчка с содержимым
ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
может повторяться, можно сделать чтобы только последняя (ближайшая по времени) строка записывалась в переменную $path?
Мы же всё равно оставляем только часть строчки без времени, т.е. последняя это или первая, в данном случае всё равно.

Итого, с учётом новых условий:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$filenames = (ls -Path C:\badmassenges).Name
$messages = @()
 
foreach ($log in ls C:\test\* -inc "$(get-date -Format yyyy-MM-dd).log" -rec)
{
    $text = gc $log -enc Default -Raw
    
    foreach ($name in $filenames)
    {
        $Pattern = ".+ERROR\ (Файл\ '(.+\\$([regex]::Escape($name)))'.+)"
        $result = [Regex]::Matches($text,$Pattern)
        $result | %{$_.Groups[2].Value} | select -Unique
        $messages += $result | %{$_.Groups[1].Value} | select -Unique
    }
}
 
''; $messages

Не по теме:


Вы в этом разделе написали уже 131 сообщение и создали 30 тем. Судя по темам, что-то пытаетесь автоматизировать/администрировать. Вот неужели за всё это время нельзя было разобраться, почему у других в сообщениях: скрипты отформатированы, цитаты и ники других пользователей выделены и т.п.???

1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
12.01.2018, 13:49  [ТС]
Спасибо, в понедельник на работе попробую. Кстати, по части скорости выполнения, только сейчас подумал, а вот если брать лог но не весь его читать, а только последние 50 или 100 строчек к примеру, так возможно вообще? Потому что скрипт скрипт будет срабатывать когда файл будет перемещён в badmassenges, а запись в логе появится как раз в этом интервале.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.01.2018, 14:03
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
а вот если брать лог но не весь его читать, а только последние 50 или 100 строчек к примеру, так возможно вообще?
Можно:

PowerShell
1
2
3
4
"первые 100 строчек:"
Get-Content .\log.txt -ReadCount 100
"последние 100 строчек:"
Get-Content .\log.txt -ReadCount 100 -Tail
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
12.01.2018, 16:28  [ТС]
Проверил, ну быстрее не стал работать скрипт, моё предположение оказалось ошибочно)))

Добавлено через 49 минут
Цитата Сообщение от KDE777 Посмотреть сообщение
Мы же всё равно оставляем только часть строчки без времени, т.е. последняя это или первая, в данном случае всё равно.
Просто может произойти такая ситуация, что для этого же файла может поменяться "причина по которой файл не будет снова отправлен", а лог пишется сверху вниз. И вместо нужной информации будет выбрана та которая была ранее, точнее самая верхняя в логе.

Добавлено через 1 час 26 минут
Блин, засада, а может быть и такая ситуация: в разных логах (имеется ввиду логи в разных папках C:\test\*) может фигурировать файл с одинаковым названием, KDE777, можно сделать тогда так - опираясь на время в логе, сортируем и выбираем строку по наибольшему времени?

Т.е. если мы получаем массив строк с одинаковым названием файла, то сортируем по времени, которое есть в логе, по возрастанию и берём первую строку и записываем в переменную $result
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
15.01.2018, 07:48  [ТС]
KDE777, доброго Вам дня. Проверил скрипт, всё работает замечательно! Спасибо Вам огромное!
Если Вам несложно, можно его поправить, чтобы на случай если в логах будут строчки с одинаковым названием файла, т.е. скрипт выберет все строчки из логов

11.01.2018 08:42:57.070 ERROR Файл 'C:\test\trace1\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
11.01.2018 09:55:10.069 ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
11.01.2018 07:00:05.863 ERROR Файл 'C:\test\trace3\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.

Далее сортируем строки по возрастанию времени и выбираем только одну:

11.01.2018 09:55:10.069 ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
15.01.2018, 13:35
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Блин, засада, а может быть и такая ситуация: в разных логах (имеется ввиду логи в разных папках C:\test\*) может фигурировать файл с одинаковым названием
можно сделать тогда так - опираясь на время в логе, сортируем и выбираем строку по наибольшему времени?
Т.е. если мы получаем массив строк с одинаковым названием файла, то сортируем по времени, которое есть в логе, по возрастанию и берём первую строку и записываем в переменную $result
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
можно его поправить, чтобы на случай если в логах будут строчки с одинаковым названием файла, т.е. скрипт выберет все строчки из логов
11.01.2018 08:42:57.070 ERROR Файл 'C:\test\trace1\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
11.01.2018 09:55:10.069 ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
11.01.2018 07:00:05.863 ERROR Файл 'C:\test\trace3\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
Далее сортируем строки по возрастанию времени и выбираем только одну:
11.01.2018 09:55:10.069 ERROR Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
А теперь сравните это с вашей первоначальной просьбой: Берём имена файлов ($filename) из C:\badmassenges, а затем ищем во всех C:\test\*\$date.log строчки, которые содержат "*ERROR Файл '*\$filename'*" и из найденной строки выбираем только полный путь.

Это называется не поправить, а сделать заново (причём уже несколько раз). Создавая в следующий раз тему, постарайтесь сначала подумать, что же вам действительно нужно.

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$filenames = (ls -Path C:\badmassenges).Name
$messages = @()
$obj = @{}
 
foreach ($log in ls C:\test\* -inc "$(Get-Date -Format yyyy-MM-dd).log" -rec)
{
    $text = gc $log -enc Default -Raw
    
    foreach ($name in $filenames)
    {
        $Pattern = ".+ERROR\ Файл\ '.+\\$([regex]::Escape($name))'.+"
        foreach ($result in [Regex]::Matches($text,$Pattern) | select @{N='Value';E={$_.Value.Split(' ',4)}})
        {
            $obj.Date = Get-Date "$($result.Value[0]) $($result.Value[1])"
            $obj.Msg = $result.Value[-1]
            $messages += New-Object -TypeName PSObject –Prop $obj
        }
    }
}
 
"Все найденные строки:"
$messages
"`nСамая новая из найденных строк:"
$messages | sort Date | select -exp Msg -Last 1
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
15.01.2018, 14:14  [ТС]
Да, всё супер! Только не могу понять как мне записать в этом скрипте в переменную $psth = C:\test\trace3\telegramma.txt

В предыдущем скрипте было понятно

$result = [Regex]::Matches($text,$Pattern)
$psth = $result | %{$_.Groups[2].Value} | select -Unique

А здесь как?

Добавлено через 13 минут
Просто мне нужно записать два переменные
$path - C:\test\trace\telegramma.txt
$messages - Файл 'C:\test\trace\telegramma.txt' не будет обработан, так как его размер превышает 19456000 байт.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
15.01.2018, 14:32
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Только не могу понять как мне записать в этом скрипте в переменную $psth = C:\test\trace3\telegramma.txt
В предыдущем скрипте было понятно
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$filenames = (ls -Path C:\badmassenges).Name
$messages = @()
$obj = @{}
 
foreach ($log in ls C:\test\* -inc "$(Get-Date -Format yyyy-MM-dd).log" -rec)
{
    $text = gc $log -enc Default -Raw
    
    foreach ($name in $filenames)
    {
        $Pattern = ".+ERROR\ Файл\ '(.+\\$([regex]::Escape($name)))'.+"
        foreach ($result in [Regex]::Matches($text,$Pattern) | select @{N='Value';E={$_.Value.Split(' ',4)}},@{N='Path';E={$_.Groups[1].Value}})
        {
            $obj.Date = Get-Date "$($result.Value[0]) $($result.Value[1])"
            $obj.Msg = $result.Value[-1]
            $obj.Path = $result.Path
            $messages += New-Object -TypeName PSObject –Prop $obj
        }
    }
}
 
"Все найденные строки:"
$messages
"`nСамая новая из найденных строк:"
$messages | sort Date | select -Last 1 | fl
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
15.01.2018, 15:21  [ТС]
$filenames = (ls -Path C:\badmassenges).Name
$messages = @()
$obj = @{}

foreach ($log in ls C:\test\* -inc "$(Get-Date -Format yyyy-MM-dd).log" -rec)
{
$text = gc $log -enc Default -Raw

foreach ($name in $filenames)
{
$Pattern = ".+ERROR\ Файл\ '(.+\\$([regex]::Escape($name)))'.+"
foreach ($result in [Regex]::Matches($text,$Pattern) | select @{N='Value';E={$_.Value.Split(' ',4)}},@{N='Path';E={$_.Groups[1].Value}})
{
$obj.Date = Get-Date "$($result.Value[0]) $($result.Value[1])"
$obj.Msg = $result.Value[-1]
$Path = $result.Path
$messages += New-Object -TypeName PSObject –Prop $obj
$message = $messages | sort Date | select -exp Msg -Last 1
}
}
}

$Path
$message

Получается скрипт в переменную $message записывает последнюю и отсортированную по времени строчку
в в переменную $Path записывает путь из последней стоки в логе, где встречается название файла. Можете сделать чтобы путь соответствовал стоке записанной в $message. Это последнее.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
15.01.2018, 15:36
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Получается скрипт в переменную $message записывает последнюю и отсортированную по времени строчку
в в переменную $Path записывает путь из последней стоки в логе, где встречается название файла. Можете сделать чтобы путь соответствовал стоке записанной в $message.
Всё уже так и сделано в скрипте из ответа #28

PowerShell
1
2
3
4
5
6
7
$message = $messages | sort Date | select -Last 1
 
$date = $message.Date
$msg = $message.Msg
$path = $message.Path
 
$date; $path; $msg
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
16.01.2018, 12:11  [ТС]
KDE777, спасибо Вам за помощь!
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
29.01.2018, 12:33  [ТС]
KDE777, доброго дня! Помогите пожалуйста. Если всё таки есть необходимость в строчке
$text = gc $log -enc Default -Raw проставить параметр со значением -Tail 50.
Возникает ошибка

gc : Параметры "Raw" и "Tail" не могут быть указаны в одной команде.
строка:7 знак:13
+ $text = gc $log -enc Default -Raw -Tail 50
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ( [Get-Content], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Co mmands.GetContentCommand

А заменить -Raw на -Tail тоже нельзя потому что ломается логика и в переменную $path путь к файлу уже нормально не пишется

Добавлено через 59 минут
Хотелось бы всё таки чтобы побыстрее скрипт работал, поэтому хотел через -Tail 50 (((
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
31.01.2018, 11:43  [ТС]
Или придётся полностью переписывать скрипт?(((
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
31.01.2018, 13:49
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Если всё таки есть необходимость в строчке
$text = gc $log -enc Default -Raw проставить параметр со значением -Tail 50
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$filenames = (ls -Path C:\badmassenges).Name
$messages = @()
$obj = @{}
 
foreach ($log in ls C:\test\* -inc "$(Get-Date -Format yyyy-MM-dd).log" -rec)
{
    $text = gc $log -enc Default -Tail 50
    $text = $text | gc -raw
    
    foreach ($name in $filenames)
    {
        $Pattern = ".+ERROR\ Файл\ '(.+\\$([regex]::Escape($name)))'.+"
        foreach ($result in [Regex]::Matches($text,$Pattern) | select @{N='Value';E={$_.Value.Split(' ',4)}},@{N='Path';E={$_.Groups[1].Value}})
        {
            $obj.Date = Get-Date "$($result.Value[0]) $($result.Value[1])"
            $obj.Msg = $result.Value[-1]
            $obj.Path = $result.Path
            $messages += New-Object -TypeName PSObject –Prop $obj
        }
    }
}
 
"Все найденные строки:"
$messages
"`nСамая новая из найденных строк:"
$messages | sort Date | select -Last 1 | fl
0
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
31.01.2018, 14:29  [ТС]
Вот такие ошибки при выполнении
Миниатюры
Парсинг лога  
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
31.01.2018, 15:00
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Вот такие ошибки при выполнении
Поменяйте строчку $text = $text | gc -raw на такую: $text = $text | Out-String
1
0 / 0 / 0
Регистрация: 12.06.2016
Сообщений: 288
01.02.2018, 10:56  [ТС]
Супер!!! KDE777, вы Бог PS.

Только сегодня когда тестировал, выяснил такую проблему. Кривой софт, который перекладывает файлы, длина которых превышает 95 символов, в папку C:\badmassenges перемещает такие файлы без расширения, а в лог пишет как положено с расширением, и перенастроить софт невозможно.

Пример лога:

01.02.2018 10:48:05.156 ERROR Длина имени файла 'C:\test\trace\Аaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt' превышает 95 символов.

Возможно ли сделать так, чтобы плюс к тому рабочему скрипту добавить

Если будет файл без расширения в папке C:\badmassenges, его имя будет превышать 95 символов, то по аналогии с рабочим скриптом делалось тоже самое

"Все найденные строки:"
$messages
"`nСамая новая из найденных строк:"
$messages | sort Date | select -Last 1 | fl

т.е. в переменную path должно записаться 'C:\test\trace\Аaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt'

Добавлено через 3 часа 11 минут
KDE777, можете помочь? Это последний вопрос.
0
 Аватар для KDE777
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
01.02.2018, 13:06
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
а можете поправить скрипт чтобы путь возвращал без кавычек
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
И последний вопрос
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
У меня к Вам несколько вопросов, если несложно можете помочь?
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Если Вам несложно, можно его поправить, чтобы на случай если в логах будут строчки с одинаковым названием файла, т.е. скрипт выберет все строчки из логов
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Хотелось бы всё таки чтобы побыстрее скрипт работал, поэтому хотел через -Tail 50
Цитата Сообщение от Dimasik1989 Посмотреть сообщение
Возможно ли сделать так, чтобы плюс к тому рабочему скрипту добавить
В результате непрерывно меняющихся условий и добавления новых пожеланий, этот скрипт превратился в изделие из пластилина и веточек. В результате даже я, автор этой поделки, перестал понимать - что, как и для чего в ней сделано Поэтому, в очередной раз вспоминать/разбираться во всех условиях/пожеланиях раскиданных по трём страницам совсем не хочется, т.е. сделать наверно возможно, но лично мне это уже не интересно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2018, 13:06

Обработка лога
С помощью "кирпичиков" на cyberforum получился текст. Задача- обработка логов с поиском заданных строк, сравнить полученный массив со...

Поменять формат лога
Здравствуйте! У меня есть следующее задание. Есть исходный формат лога программы: Исходный формат лога: Jul 6 17:35:10 sdc-prius...

Нужен скрипт для парсинга лога
Добрый день. Прошу помощи у гуру, вот задание Необходимо автоматизировать поиск минимального, максимального и среднего времени...

Ведение лога стабильности соединения
Появилась необходимость проверки стабильности интернет соединения. первое что пришло в голову это ping -t 8.8.8.8 > log.txt. Но...

Программа - парсинг лога.
В данный момент учу паскаль, как в учебном центре заочно, так и всевозможные учебные видео. Вобщем-то это не от кого не секрет, и многие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru