Genera stringhe User-Agent realistiche per browser desktop (Chrome, Firefox, Safari, Edge), mobile (iOS, Android) e bot famosi (Googlebot, Bingbot, etc.). Utile per testing crawler, debug, test multi-device, scraping educativo e simulazioni client.
Ogni richiesta HTTP che il browser invia porta con sé una stringa User-Agent: una riga di testo che dichiara browser, motore di rendering, sistema operativo e versione. Questo generatore assembla UA realistiche e coerenti per Chrome, Firefox, Safari ed Edge, sia desktop che mobile, oltre alle firme dei bot più noti. È pensato per chi sviluppa, fa QA cross-browser o scrive script di scraping e ha bisogno di un'intestazione credibile senza copiarla a mano da un dispositivo reale.
Lo strumento non produce testo casuale carattere per carattere: assembla componenti reali seguendo la grammatica che ogni vendor rispetta. Per Chrome su Windows, ad esempio, la forma è 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', con il token WebKit sempre presente per ragioni storiche di compatibilità. Il generatore estrae a caso piattaforma, famiglia di browser e un numero di versione plausibile, poi li incastra nel template corretto.
La selezione casuale attinge a una sorgente di entropia robusta lato server (random_int su CSPRNG), così due generazioni consecutive non seguono uno schema prevedibile e puoi produrre liste di UA distinte per test massivi. I numeri di versione restano dentro intervalli realistici: non vedrai mai un Chrome 3 o un iOS 47, perché le combinazioni impossibili verrebbero scartate subito dai server o dai sistemi anti-bot che stai simulando.
Puoi orientare l'output verso la categoria che ti serve: desktop, mobile o bot. Un UA mobile include token come 'iPhone; CPU iPhone OS 17_4 like Mac OS X' oppure 'Linux; Android 14; SM-S918B', mentre un bot riproduce firme note come 'Googlebot/2.1' o 'bingbot/2.0'. Ciò che conta è la coerenza interna: sistema operativo, motore e versione devono raccontare la stessa storia, altrimenti la stringa tradisce subito la propria natura sintetica.
Simuli come il tuo sito risponde a un Safari su iPhone o a un Edge su Windows senza avere il dispositivo fisico: utile per debuggare header sniffing, feature detection o redirect verso la versione mobile.
Assegni al tuo script Python (requests o Scrapy) un UA credibile al posto del default 'python-requests/2.x', riducendo i blocchi banali sui siti che filtrano le intestazioni sospette o vuote.
Generi decine di UA diversi da alternare tra le richieste di un crawler, così distribuisci il traffico ed eviti che ogni chiamata parta con la stessa identica firma.
Riempi una tabella di log o di analytics fittizi con UA vari e realistici, in modo che i grafici di ripartizione browser/OS della tua dashboard di staging risultino plausibili.
Controlli come il tuo WAF o le regole nginx reagiscono a un UA di Googlebot o a uno palesemente sospetto, per calibrare whitelist e blocchi prima di andare in produzione.
Imposti un UA mobile in DevTools o in un client come Postman per forzare il rendering della versione touch di una pagina mentre la stai costruendo.
Se osservi un qualsiasi UA moderno noti un dettaglio curioso: comincia sempre con 'Mozilla/5.0', anche quando il browser è Chrome, Safari o Edge, che con Mozilla non c'entrano nulla. È un fossile degli anni Novanta. All'epoca Netscape Navigator (nome in codice Mozilla) supportava i frame, e alcuni server servivano contenuti ricchi solo ai browser il cui UA conteneva 'Mozilla'. Quando arrivò Internet Explorer, per non restare escluso si finse tale dichiarandosi 'Mozilla/4.0 (compatible; MSIE ...)'.
Da lì partì una reazione a catena: ogni nuovo browser copiava i token dei predecessori per non essere trattato come inferiore. Ecco perché Chrome contiene insieme 'AppleWebKit', 'KHTML', 'like Gecko' e 'Safari' pur non essendo Safari: sta rivendicando compatibilità con l'intera catena di motori da cui deriva. Il risultato è un pasticcio storico che oggi nessuno può più semplificare senza rischiare di rompere milioni di siti.
Proprio per questa inaffidabilità i vendor stanno riducendo l'informazione contenuta nell'UA. Chrome ha 'congelato' parte della stringa e spinge verso le Client Hints (header Sec-CH-UA), dove browser e piattaforma vengono negoziati in modo strutturato. L'UA classico però resta ancora ovunque per compatibilità, ed è questo il motivo per cui generarne di realistici ha ancora senso.
Vale la pena ricordare il lato etico. Falsificare l'UA è legittimo per testing e sviluppo, ma usarlo per aggirare paywall o termini di servizio, o per spacciarsi da Googlebot verso siti terzi, può violarne i regolamenti. Lo strumento serve a lavorare, non a ingannare.
Identifica il software che effettua una richiesta web: browser, versione, motore di rendering e sistema operativo. I server la usano per adattare i contenuti, ad esempio servendo la versione mobile di un sito, e gli strumenti di analytics per stimare la ripartizione dei dispositivi tra i visitatori.
Sì, modificare l'UA è perfettamente legale e comunissimo nello sviluppo e nel testing: browser e DevTools lo permettono nativamente. Diventa problematico solo quando lo usi per violare i termini di servizio di un sito, aggirare protezioni o spacciarti per un bot ufficiale come Googlebot verso terzi.
Sono costruiti secondo la struttura autentica dei browser veri, con OS, motore e versioni coerenti, quindi funzionano nella maggior parte degli scenari di test e scraping. Le versioni però invecchiano: per traffico che deve superare controlli stringenti conviene verificare che il numero di versione sia ancora tra quelli recenti.
Copia la stringa e impostala come header 'User-Agent' della richiesta. In Python con requests basta requests.get(url, headers={'User-Agent': 'la_stringa'}); con curl usi il flag -A 'la_stringa'. Per crawler seri conviene generarne diversi e ruotarli tra le chiamate.
Un UA desktop dichiara un sistema da computer come Windows o macOS; uno mobile include token come iPhone o Android insieme al modello del dispositivo; un UA bot riproduce la firma di un crawler, ad esempio 'Googlebot/2.1'. La categoria influenza il modo in cui i server rispondono, quindi scegli quella adatta al test che devi fare.
È un residuo storico degli anni Novanta, quando alcuni server servivano i contenuti avanzati solo ai browser che si dichiaravano 'Mozilla' (nome in codice di Netscape). Ogni browser successivo ha copiato il token per compatibilità, così oggi anche Chrome, Safari ed Edge iniziano con 'Mozilla/5.0' pur non avendo alcun legame con Mozilla.