Параметри INI (.ini)

Де-факто Стандарт

Windows Initialization Configuration (INI) - це класичний, зручний для читання людиною формат файлу конфігурації, популяризований Microsoft Windows, який організовує налаштування додатків у пойменовані [розділи], що містять пари ключ=значення.

Конвертувати з INI у JSON

Безкоштовний конвертер з INI у JSON у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли INI, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

100% приватна конвертація у браузері - файли ніколи не покидають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності з нульовою передачею мережею: 0 байт завантажено на зовнішні сервери. Уся обробка виконується локально в пісочниці вашого браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли INI, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

5B ... 5D

ASCII-УЯВЛЕННЯ: [...]

Стандартизація: Де-факто галузевий стандарт конфігурації

Технічні характеристики

Архітектура контейнераЗвичайний текстовий файл конфігурації, структурований у заголовки [section], що містять пари ключ = значення та коментарі (; або #)
СтисненняНестиснений текстовий файл
Порядок байтів (Endianness)Текстовий потік UTF-8 або ANSI
Колірні просториН/Д (Файл конфігурації)
Канали та структураВластивості конфігурації ключ-значення, за категоріями просторів імен розділів
Максимальні розміриІсторичне обмеження у 64 КБ у 16-бітній Windows; необмежено в сучасних реалізаціях
ПрозорістьВідсутня
Потокове та прогресивне завантаженняПослідовний построковий потоковий парсер

Технічна матриця порівняння: INI проти конкурентів

Технічний атрибутINI (Поточний)JSONYAMLTOML
Складність синтаксисуНайпростіший із можливих (розділ + ключ=знач)Суворі дужки та лапкиЧутливі до відступів пробілиСучасні типізовані таблиці
Підтримка коментарівНативна (коментарі ; та #)Коментарі не підтримуються в специфікаціїНативна (коментарі #)Нативна (коментарі #)
Вкладені структуриЛише 1-рівневі розділиНескінченно вкладені об'єкти/масивиНескінченно вкладені дереваСтруктуровані масиви таблиць
Типізація данихНеявні рядки (додаток аналізує типи)Явні числа, логічні значення, масивиЯвні типи та прив'язкиЯвні дати, числа, масиви

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Додаток ігнорує налаштування або не запускається.

Першопричина: Відсутня дужка заголовка розділу (наприклад, '[Settings' замість '[Settings]') або неэкранований знак рівності у значенні.

Відновлення: Перевірте та виправте синтаксис INI за допомогою форматувальника конфігурацій File2File.

Аналіз безпеки та векторів атак на парсери

Парсери INI повинні захищати від атак з впровадженням розділів та забруднення прототипів під час десеріалізації в об'єкти.

Відомі вектори атак

  • Впровадження INI, де вставка нового рядка у введених користувачем даних створює несанкціоновані розділи конфігурації.
  • Забруднення прототипів (prototype pollution) у парсерах INI на JavaScript при призначенні у '__proto__'.
  • Відмова в обслуговуванні за допомогою глибоко рекурсивного розширення назв розділів.

Захисні найкращі практики:

Історичне походження та віхи

2000Стандартна бібліотека Python інтегрує модуль ConfigParser, закріплюючи INI як універсальний формат конфігурації програмного забезпечення.
1995Windows 95 представляє системний реєстр Windows на заміну монолітним системним файлам INI (SYSTEM.INI, WIN.INI).
1985Microsoft Windows 1.0 представляє WIN.INI як основну базу даних конфігурації операційної системи.

Головні переваги та плюси

  • Винятково чистий, інтуїтивно зрозумілий синтаксис: нетехнічні користувачі можуть легко читати та змінювати налаштування.
  • Нативні API синтаксичного аналізу майже кожною мовою програмування (configparser у Python, parse_ini_file у PHP, C#).
  • Простори імен розділів запобігають колізіям налаштувань у різних функціях додатків.

Технічні обмеження та мінуси

  • Відсутній офіційний міжнародний стандарт: символи коментарів (; проти #) та правила екранування відрізняються в різних парсерах.
  • Плоска ієрархія: не підтримує глибоко вкладені масиви або складні структуровані об'єкти без спеціальних роздільників.
  • Усі значення зчитуються як рядки, що вимагає від додатків вручну аналізувати цілі числа, логічні значення та числа з плавною комою.

Цікаві технічні факти

  • У Windows 3.1 кожне окреме налаштування всієї операційної системи зберігалося лише у двох файлах: WIN.INI та SYSTEM.INI.
  • Git використовує формат INI для свого основного файлу конфігурації репозиторію, розташованого за адресою '.git/config'.
  • Файли ярликів робочого столу на Linux (файли '.desktop' XDG Desktop Entry) структуровані за допомогою стандартного синтаксису INI.

Поширені технічні запитання

Для чого використовується файл INI?

Файли INI використовуються настільним програмним забезпеченням, іграми та інструментами розробників (як-от конфігурація Git та PHP.ini) для зберігання вподобань користувача та налаштувань конфігурації у зручному для читання форматі.

Як я можу редагувати файл INI?

Ви можете відкривати та редагувати файли INI за допомогою будь-якого базового текстового редактора, такого як Notepad, TextEdit, VS Code або прямо онлайн за допомогою File2File.app.

Чи можу я конвертувати INI у JSON або YAML?

Так. File2File.app може миттєво конвертувати файли INI у формати JSON, YAML або TOML прямо у вашому браузері.