UAGEN(1) User Contributed Perl Documentation UAGEN(1)

uagen - تولیدکننده User-Agent فایرفاکس برای Privoxy و مرورگرهای موزیلا

uagen [--action-file action_file] [--action-injection] [--browser-release-date browser_release_date] [--browser-revision browser_revision] [--browser-version browser_version] [--clean-prefs-file] [--help] [--language-overwrite language(s)] [--logfile logfile] [--loop] [--no-action-file] [--no-logfile] [--prefs-file prefs_file] [--randomize-release-date] [--quiet] [--sleeping-time minutes] [--silent] [--version]

دستور uagen یک User-Agent ساختگی برای Firefox تولید کرده و آن را به عنوان پارامتری برای اقدام (action) hide-user-agent در فایل action مربوط به Privoxy ذخیره می‌کند. سیستم‌عامل، معماری، پلتفرم، زبان و در صورت تمایل تاریخ ساخت (build date) به صورت تصادفی انتخاب می‌شوند.

زبان تولیدشده همچنین به عنوان پارامتری برای اقدام hide-accept-language استفاده می‌شود؛ قابلیتی که از نسخه 3.0.5 beta به بعد توسط Privoxy پشتیبانی می‌شود.

علاوه بر این، User-Agent تولیدشده می‌تواند در فایل‌های prefs.js که توسط بسیاری از مرورگرهای بر پایه Mozilla استفاده می‌شوند، نوشته شود.

--action-file action_file فایل action مربوط به Privoxy برای نوشتن اقدام‌های تولیدشده در آن. مقدار پیش‌فرض /etc/privoxy/user-agent.action است.

--action-injection فایل action را از ابتدا تولید نمی‌کند، بلکه فایل قبلی را خوانده و تنها مقادیر اقدام‌ها را جایگزین می‌نماید. برای حفظ الگوهای سفارشی URL کاربرد دارد. برای کارکرد صحیح، این فایل action باید از قبل وجود داشته باشد. uagen نه نحو فایل را بررسی می‌کند و نه به موجود بودن همه اقدام‌ها کاری دارد؛ ورودی نامعتبر منجر به خروجی نامعتبر خواهد شد (Garbage in, garbage out).

--browser-release-date browser_release_date تاریخ مورد استفاده. قالب آن به صورت YYYYMMDD است. برخی بررسی‌های صحت‌سنجی اولیه انجام می‌شود، اما نباید به آن‌ها اتکا کنید. توجه داشته باشید که پروژه Mozilla از Firefox 4 به بعد «Gecko token» را تثبیت کرده است، بنابراین استفاده از مقداری غیر از پیش‌فرض تا حدی مشکوک خواهد بود.

--browser-revision browser_revision استفاده از بازبینی (revision) سفارشی. uagen بدون هیچ‌گونه بررسی صحت‌سنجی از آن استفاده خواهد کرد.

--browser-version browser_version استفاده از نسخه مرورگر سفارشی. uagen بدون هیچ‌گونه بررسی صحت‌سنجی از آن استفاده خواهد کرد.

--clean-prefs-file فایل prefs_file خوانده شده و متغیرهای general.useragent.override و intl.accept_languages از آن حذف می‌شوند. تنها در صورتی مؤثر است که prefs_file مشخص شده باشد و فقط زمانی کاربرد دارد که بخواهید مجدداً از پیش‌فرض‌های مرورگر استفاده کنید.

--help نمایش فهرست گزینه‌های خط فرمان و خروج.

--language-overwrite language(s) فهرستی از کدهای زبان جداشده با کاما برای بازنویسی مقادیر پیش‌فرض. uagen یکی از آن‌ها را برای User-Agent تولیدشده انتخاب می‌کند؛ به صورت پیش‌فرض، زبان انتخاب‌شده با حروف کوچک به عنوان پارامتر اقدام hide-accept-language نیز استفاده می‌شود.

--logfile logfile فایل لاگ برای ذخیره پیام‌های خطا و User-Agentهای تولیدشده. مقدار پیش‌فرض /var/log/uagen.log است.

--loop پس از تولید فایل action خارج نمی‌شود؛ در عوض مدتی به حالت خواب می‌رود و سپس فایل جدیدی تولید می‌کند. زمانی که cron(8) را در اختیار ندارید مفید است.

--no-logfile هیچ موردی را در فایل لاگ ثبت نمی‌کند.

--no-action-file فایل action را در دیسک نمی‌نویسد.

--no-hide-accept-language سازگاری با Privoxy 3.0.3 را حفظ کرده و خط اقدام hide-accept-language را تولید نمی‌کند. البته اکیداً توصیه می‌شود نسخه Privoxy خود را ارتقا دهید.

--prefs-file prefs_file از User-Agent تولیدشده برای تنظیم متغیر general.useragent.override در فایل ترجیحات موزیلا (prefs_file) استفاده می‌کند؛ متغیر intl.accept_languages نیز تنظیم خواهد شد.

فایل ترجیحات فایرفاکس معمولاً در مسیر ~/.mozilla/firefox/*.default/prefs.js قرار دارد. توجه داشته باشید که Firefox پس از اجرا شدن، فایل ترجیحات را مجدداً بازخوانی نمی‌کند.

--randomize-release-date به صورت تصادفی تاریخی میان تاریخ انتشار پیکربندی‌شده و تاریخ فعلی انتخاب می‌کند. دقت داشته باشید که نسخه‌های Firefox بعد از 4.0 دیگر تاریخ ساخت را در سرآیند User-Agent قرار نمی‌دهند، بنابراین اگر تاریخ را به صورت تصادفی تنظیم کنید، ساختگی بودن User-Agent کاملاً آشکار خواهد شد.

--quiet مقدار User-Agent تولیدشده را در کنسول چاپ نمی‌کند.

--sleeping-time minutes مدت زمان توقف (بر حسب دقیقه). تنها در صورت استفاده به همراه گزینهٔ --loop اثرگذار است.

--silent مقدار User-Agent تولیدشده را در کنسول چاپ نمی‌کند.

--version نمایش نسخه برنامه و خروج.

استفاده از خط تیره دوم اختیاری است و تا زمانی که ابهامی وجود نداشته باشد، می‌توان گزینه‌ها را به صورت خلاصه‌شده به کار برد.

در فایل پیکربندی Privoxy خط زیر:

actionsfile user-agent.action

باید بعد از:

actionfile default.action

و قبل از:

actionfile user.action

اضافه شود. به این ترتیب کاربر همچنان می‌تواند از User-Agentهای سفارشی در user.action استفاده کند. مقدار user-agent باید نام فایل action تولیدشده باشد.

اگر از نسخه 3.0.6 یا قدیمی‌تر Privoxy استفاده می‌کنید، پسوند «.action» را به آن اضافه نکنید.

بدون تعیین هیچ گزینه‌ای، uagen یک فایل action شبیه به نمونه زیر ایجاد می‌کند:

{+hide-accept-language{en-ca} \
 +hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
}
/

با اعمال گزینهٔ --no-accept-language، فایل تولیدشده ممکن است شبیه این نمونه باشد:

{+hide-user-agent{Mozilla/5.0 (X11; U; FreeBSD i386; de-DE; rv:1.8.0.4) Gecko/20060720 Firefox/1.5.0.4} \
}
/

از اقدام https-inspection استفاده کنید تا اطمینان یابید Privoxy توانایی ویرایش سرآیندهای مرورگر را برای ترافیک رمزگذاری‌شده نیز داراست.

کاربران مرورگرهای بر پایه Mozilla می‌توانند از گزینهٔ --prefs-file برای تغییر User-Agent مرورگر استفاده کنند. با این حال توجه داشته باشید که فایل ترجیحات فقط هنگام آغاز به کار مرورگر خوانده می‌شود؛ اگر مرورگر در حال اجرا باشد، تغییرات اعمال‌شده توسط uagen نادیده گرفته خواهند شد.

اگر مرورگر تمام کوکی‌ها را بپذیرد یا برای دسترسی و نگهداری از راه دور از طریق پلتفرم‌های پرخطر مانند Flash، JavaScript، Java یا موارد مشابه تنظیم شده باشد، پنهان‌سازی User-Agent بی‌فایده خواهد بود.

برخی از پارامترها را نمی‌توان مستقیماً از طریق خط فرمان تنظیم کرد.

privoxy(8)

Fabian Keil <fk@fabiankeil.de>

https://www.fabiankeil.de/sourcecode/uagen

https://www.fabiankeil.de/blog-surrogat/2006/01/26/firefox-user-agent-generator.html (آلمانی)

2025-11-27 perl v5.42.2