История изменений
Исправление LightDiver, (текущая версия) :
У меня смутное подозрение, что ты врешь. Я скормил твой код ии:
этот код действительно выглядит так, как будто его написал ИИ или неопытный программист. Вот несколько признаков:
Смешанный стиль - Код сочетает элементы хорошего стиля (strict/warnings, использование констант) с неидиоматичными решениями.
Странные конструкции:
Использование // оператора вместе с // 0 везде, хотя хеш инициализируется вручную
Избыточные скобки в выражениях типа ($local_ips{$src}{$dst}[OUT_BYTES] // 0) + $len
Ненужные модификаторы в регулярных выражениях (.*?)
Проблемы безопасности:
Использование exec в open() без проверки
Нет обработки ошибок для mkdir и файловых операций
Оптимизация:
Хеш статистики обновляется для каждого пакета, но сбрасывается только раз в час
Нет защиты от переполнения памяти при большом количестве IP-адресов
Странные решения:
Использование alarm с вычислением остатка от деления времени
Подсчет длины пакета из tcpdump без учета заголовков
Форматирование:
Несогласованное форматирование (разные отступы, странные переносы строк)
Избыточные скобки в простых условиях
Скорее всего, это либо:
Код, сгенерированный ИИ (например, ChatGPT) без должной проверки
Код, написанный начинающим программистом, который пытался имитировать "профессиональный" стиль
Частично модифицированный пример из интернета
Особенно подозрительно выглядит сочетание относительно сложных концепций (POSIX, сигналы, fork/exec) с явными проблемами в базовой обработке данных и управлении памятью.
Тут явно поработал кто то криворукий дополнительно и все поломал. Или ты писал его сам вручную или через какую то херню прогнал.
Я попросил исправить и в 2 запроса получил под свой трафик результат рабочий. Вот вывод логов:
calculate 2025-04-13 # cat 192.168.0.92.txt
Remote IP In Bytes In Pkts Out Bytes Out Pkts
104.166.186.114 39 B 2 39 B 2
104.18.27.90 0 B 0 99 B 1
121.36.239.137 31 B 4 31 B 3
138.113.150.19 0 B 1 0 B 1
149.154.167.220 874 B 4 607 B 3
149.154.167.51 1 KB 12 1 KB 14
163.181.0.231 0 B 2 0 B 2
186.2.166.101 2 KB 35 47 B 34
188.240.145.70 258 B 2 31 B 4
192.168.8.1 17 KB 74 12 KB 67
35.174.127.31 528 B 2 482 B 4
47.246.2.225 0 B 2 0 B 2
91.108.9.193 34 KB 94 2 KB 66
calculate 2025-04-13 # cat 192.168.8.1.txt
Remote IP In Bytes In Pkts Out Bytes Out Pkts
192.168.0.92 12 KB 67 17 KB 74
calculate 2025-04-13 #
Если ты действительно пользовался ИИ, не пользуйся больше этим ИИ по крайней мере для этих задач. Каждый из них хорошо справляется с чем то своим, попробуй другой. Если писал сам - попроси ИИ исправить. Попробуй разных, подбери какой лучше подходит для твоего кода.
И нет, такие нудные скриптики не быстрее написать самому. ИИ сгенерировал более менее рабочее в два запроса. А самоу просто реализовать и написать все это займет от получаса думаю. Пока все напишешь, пока исправишь, пока отладишь. Короткие скрипты они делают почти идеально, сильно сокращают механическую работу.
Исходная версия LightDiver, :
У меня смутное подозрение, что ты врешь. Я скормил твой код ии:
этот код действительно выглядит так, как будто его написал ИИ или неопытный программист. Вот несколько признаков:
Смешанный стиль - Код сочетает элементы хорошего стиля (strict/warnings, использование констант) с неидиоматичными решениями.
Странные конструкции:
Использование // оператора вместе с // 0 везде, хотя хеш инициализируется вручную
Избыточные скобки в выражениях типа ($local_ips{$src}{$dst}[OUT_BYTES] // 0) + $len
Ненужные модификаторы в регулярных выражениях (.*?)
Проблемы безопасности:
Использование exec в open() без проверки
Нет обработки ошибок для mkdir и файловых операций
Оптимизация:
Хеш статистики обновляется для каждого пакета, но сбрасывается только раз в час
Нет защиты от переполнения памяти при большом количестве IP-адресов
Странные решения:
Использование alarm с вычислением остатка от деления времени
Подсчет длины пакета из tcpdump без учета заголовков
Форматирование:
Несогласованное форматирование (разные отступы, странные переносы строк)
Избыточные скобки в простых условиях
Скорее всего, это либо:
Код, сгенерированный ИИ (например, ChatGPT) без должной проверки
Код, написанный начинающим программистом, который пытался имитировать "профессиональный" стиль
Частично модифицированный пример из интернета
Особенно подозрительно выглядит сочетание относительно сложных концепций (POSIX, сигналы, fork/exec) с явными проблемами в базовой обработке данных и управлении памятью.
Тут явно поработал кто то криворукий дополнительно и все поломал. Или ты писал его сам вручную или через какую то херню прогнал.
Я попросил исправить и в 2 запроса получил под свой трафик результат рабочий. Вот вывод логов:
calculate 2025-04-13 # cat 192.168.0.92.txt
Remote IP In Bytes In Pkts Out Bytes Out Pkts
104.166.186.114 39 B 2 39 B 2
104.18.27.90 0 B 0 99 B 1
121.36.239.137 31 B 4 31 B 3
138.113.150.19 0 B 1 0 B 1
149.154.167.220 874 B 4 607 B 3
149.154.167.51 1 KB 12 1 KB 14
163.181.0.231 0 B 2 0 B 2
186.2.166.101 2 KB 35 47 B 34
188.240.145.70 258 B 2 31 B 4
192.168.8.1 17 KB 74 12 KB 67
35.174.127.31 528 B 2 482 B 4
47.246.2.225 0 B 2 0 B 2
91.108.9.193 34 KB 94 2 KB 66
calculate 2025-04-13 # cat 192.168.8.1.txt
Remote IP In Bytes In Pkts Out Bytes Out Pkts
192.168.0.92 12 KB 67 17 KB 74
calculate 2025-04-13 #
Если ты действительно пользовался ИИ, не пользуйся больше этим ИИ по крайней мере для этих задач. Каждый из них хорошо справляется с чем то своим, попробуй другой. Если писал сам - попроси ИИ исправить. Попробуй разных, подбери какой лучше подходит для твоего кода.