Slumpmässig User Agent Generator - Skapa Webbläsarsträngar
Generera autentiska user agent-strängar för Chrome, Firefox, Safari och Edge. Testa webbläsarkompatibilitet, responsiva designer och API:er med realistiska webbläsaridentifierare.
Slumpmässig User Agent Generator
Generera slumpmässiga, realistiska webbläsare user agent-strängar för webbutvecklingstestning.
Genererad User Agent
Dokumentation
Slumpmässig generator för user agent-strängar
En slumpmässig generator för user agent-strängar skapar exempel på user agent-strängar, de korta textrader som en webbläsare skickar till en webbplats för att identifiera sig. Verktyget bygger strängar som följer det verkliga formatet som används av Chrome, Firefox, Safari och Edge, för både stationära och mobila enheter, så att utvecklare kan testa hur en webbplats reagerar på olika webbläsare utan att installera var och en av dem.
Vad är en user agent-sträng?
Varje gång en webbläsare begär en webbsida skickar den en HTTP-header med namnet User-Agent. Headern består av en enda textrad som beskriver webbläsarens namn och version, operativsystemet samt renderingsmotorn (den del av webbläsaren som ritar upp sidan). En webbplats kan läsa denna header för att avgöra vilken sidlayout eller vilka funktioner den ska skicka tillbaka.
En typisk user agent-sträng ser ut så här:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Nästan alla webbläsare börjar sin sträng med ”Mozilla/5.0”. Det är en kvarleva från 1990-talet, när webbplatser kontrollerade förekomsten av det ordet för att avgöra om en webbläsare var tillräckligt kapabel för att visa en sida. Nyare webbläsare behöll token för att inte blockeras av gamla kontroller.
Så fungerar den här generatorn
Verktyget har tre inställningar:
- Enhetstyp – stationär eller mobil.
- Webbläsarfamilj – Chrome, Firefox, Safari eller Edge.
- Operativsystem – Windows, macOS eller Linux för stationära enheter; iOS eller Android för mobila enheter.
Alla kombinationer finns inte i verkligheten, så verktyget begränsar valen. Safari visas bara för macOS och iOS, eftersom Apple inte distribuerar Safari för Windows, Linux eller Android. Chrome, Firefox och Edge finns för alla listade operativsystem, inklusive iOS, där de körs som ett skal ovanpå Apples WebKit-motor i stället för med sina egna motorer.
När man klickar på ”Generera ny” byggs en sträng utifrån dessa tre inställningar och ett slumpmässigt valt versionsnummer. Med knappen ”Kopiera” kopieras resultatet till urklipp.
Format för user agent-strängar per webbläsare
Varje webbläsare fyller i en liknande mall med sina egna token.
Chrome (stationär):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36
2Chrome (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36
2Chrome (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/major.0.build.build Mobile/15E148 Safari/604.1
2Firefox (stationär):
1Mozilla/5.0 (platform; rv:major.0) Gecko/20100101 Firefox/major.0
2Firefox (Android):
1Mozilla/5.0 (Android version; Mobile; rv:major.0) Gecko/major.0 Firefox/major.0
2Firefox (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/major.0 Mobile/15E148 Safari/605.1.15
2Safari (macOS):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Safari/605.1.15
2Safari (iOS):
1Mozilla/5.0 (iPhone; CPU iPhone OS major_minor like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Mobile/15E148 Safari/604.1
2Edge (stationär):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36 Edg/major.0.build.build
2Edge (Android):
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36 EdgA/major.0.build.build
2Edge (iOS):
1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor EdgiOS/major.0.build.build Mobile/15E148 Safari/605.1.15
2Apple kräver att alla iOS-webbläsare använder WebKit, så iOS-formerna ovan delar Safaris motortoken AppleWebKit/605.1.15 och lägger till en webbläsarspecifik markör: CriOS/ för Chrome, FxiOS/ för Firefox och EdgiOS/ för Edge. Ingen av dem innehåller en Chrome/- eller Gecko/-token. Safari och Edge på iOS skickar också en Version/-token, som anger den Safari-version som levererades med operativsystemet, så den matchar alltid iOS-versionen i samma sträng.
Sedan 2021 har Chrome och Chromium-baserade webbläsare som Edge låst de flesta delarna av versionsnumret på stationära enheter och Android för att minska mängden identifierande information i headern, en förändring som Google kallar ”User-Agent Reduction”. I stället för ett verkligt byggnummer lyder Chrome-token i dessa strängar alltid major.0.0.0 (till exempel 128.0.0.0), och denna generator följer det beteendet. Undantaget är Edges egen token – Edg/ på stationära enheter, EdgA/ på Android och EdgiOS/ på iOS – samt Chrome på iOS (CriOS/), som fortfarande innehåller ett fullständigt fyrdelat byggnummer, eftersom Googles reduceringspolicy inte gäller för dem.
Firefox har inte infört samma låsning. Dess verkliga versionssträng består normalt av två delar, major.0, och det är den form som generatorn producerar. En tredelad Firefox-version som 95.0.2 kan förekomma i verkligheten efter en säkerhetsuppdatering, men verktyget genererar bara den tvådelade formen.
Exempel på resultat
Chrome på Windows (stationär):
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Firefox på macOS (stationär):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2Safari på macOS (stationär):
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
2Edge på Windows (stationär):
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.2903.86
2Chrome på Android (mobil):
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2Edge på Android (mobil):
1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 EdgA/128.0.2952.62
2Safari på iPhone (mobil):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1
2Firefox på Android (mobil):
1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2Chrome på iPhone (mobil):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/128.0.6613.98 Mobile/15E148 Safari/604.1
2Firefox på iPhone (mobil):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/130.0 Mobile/15E148 Safari/605.1.15
2Edge på iPhone (mobil):
1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 EdgiOS/128.0.2952.62 Mobile/15E148 Safari/605.1.15
2Skillnader mellan stationära och mobila enheter
Stationära strängar anger operativsystemet och ofta även processorarkitekturen: Win64; x64 för Windows på 64 bitar, eller Intel Mac OS X för en Mac. De är tämligen enhetliga, eftersom det bara finns ett fåtal stationära plattformar att representera.
Mobila strängar lägger vanligtvis till ordet ”Mobile” så att en webbplats vet att den ska visa en pekskärmsanpassad layout. iOS-enheter identifierar sig som ”iPhone” tillsammans med iOS-versionen, skriven med understreck (17_4) och utan en avslutande nolla för korrigeringsversionen, alltså 17_4 i stället för 17_4_0. Android fungerar annorlunda: på grund av samma versionsreduceringspolicy som påverkar Chromes byggnummer rapporterar Chrome och Edge på Android alltid plattformen som Linux; Android 10; K, oavsett vilken Android-version eller telefonmodell som faktiskt används. ”K” är en platshållare, inte en verklig enhetskod, och den riktiga Android-versionen döljs. Firefox för Android låser inte versionen på samma sätt utan rapporterar i stället den verkliga huvudversionen av Android, men innehåller inte någon enhetsmodell alls. En generator som visar en specifik telefonmodell, till exempel ett Galaxy-modellnummer, i en Android Chrome-sträng skulle därför inte stämma med hur verkliga, aktuella Chrome fungerar.
Varför ser user agent-strängar förvirrande ut?
Strängen ser rörig ut på grund av årtionden av kompatibilitetsanpassningar. Under ”webbläsarkrigen” i slutet av 1990-talet skickade vissa webbplatser bättre sidor endast till Netscape eller endast till Internet Explorer och kontrollerade nyckelord i headern. Konkurrerande webbläsare svarade genom att lägga till samma nyckelord i sina egna strängar för att inte avvisas. Därför nämner Chromes sträng fortfarande ”Safari” och ”like Gecko”, trots att den inte använder någon av motorerna med dessa namn. Varje token är en kvarleva från en handskakning som skulle tillgodose en gammal kompatibilitetskontroll, snarare än en sanningsenlig beskrivning av programvaran.
Eftersom så många webbplatser fortfarande tolkar dessa strängar kan webbläsartillverkare inte bara ta bort röran utan att sidor slutar fungera. Den långsiktiga ersättaren, som kallas User-Agent Client Hints, skickar webbläsaruppgifter som separata, strukturerade headers i stället för en lång sträng, men den klassiska User-Agent-headern skickas fortfarande överallt av bakåtkompatibilitetsskäl.
Vanliga användningsområden
- Kompatibilitetstestning. Kontrollera hur en sida renderas när den upptäcker en viss webbläsare, utan att installera den webbläsaren.
- Kontroller av responsiv design. Bekräfta att en webbplats visar en mobil layout när den tar emot en mobil user agent och annars en stationär layout.
- Automatiserade testsviter. Mata in en rad user agent-strängar i testskript för att kontrollera att koden för webbläsaridentifiering hanterar var och en korrekt.
- Testning av API:er och headers. Kontrollera att en server fungerar korrekt när olika klienttyper skickar begäranden.
Begränsningar
User agent-headern är bara en av många signaler som en webbplats kan läsa. Skript som körs på sidan kan kontrollera dussintals andra detaljer, till exempel installerade teckensnitt, skärmstorlek och hur grafikkortet renderar en testbild, en teknik som kallas fingeravtryckning. Att ange en Chrome-user agent när man i själva verket surfar i Firefox lurar inte en webbplats som kontrollerar dessa andra signaler; avvikelsen är lätt att upptäcka. För vardagligt utvecklings- och QA-arbete räcker dock en korrekt formaterad genererad sträng för att testa hur en webbplats server- och klientkod reagerar på olika webbläsare och enheter.
Vanliga frågor
Vad är en user agent-sträng? Det är en textrad som en webbläsare skickar med varje webbegäran och som anger webbläsaren, dess version, operativsystemet och renderingsmotorn. Servrar använder den för att avgöra vilket innehåll eller vilken layout som ska returneras.
Varför slutar Chrome-versionen alltid på .0.0.0?
Sedan 2021 har Chrome låst större delen av versionsnumret som rapporteras i User-Agent-headern för att minska möjligheten till fingeravtryckning. Bara huvudversionsnumret ändras; resten är fast på .0.0.0. Edges egen token och alla webbläsare på iOS är undantag och visar fortfarande ett fullständigt byggnummer.
Varför står det ”Safari” i en iPhone-sträng även när en annan webbläsare är vald?
Apple kräver att alla iOS-webbläsare använder dess WebKit-motor, så Chrome, Firefox och Edge på iOS rapporterar alla WebKit och avslutas med en Safari/-token. Webbläsaren anges av en separat markör: CriOS/ för Chrome, FxiOS/ för Firefox och EdgiOS/ för Edge.
Varför visar Android-strängen inte min telefonmodell?
Moderna versioner av Chrome och Edge på Android rapporterar en fast plattformssträng, Linux; Android 10; K, för alla enheter och alla verkliga Android-versioner, som en del av samma versionsreduceringspolicy som påverkar Chromes byggnummer. Den verkliga modellen och Android-versionen exponeras inte.
Kan jag använda en genererad user agent för webbskrapning?
Det går att ändra headern, men webbplatser kan upptäcka en avvikelse genom andra signaler, och skrapning kan strida mot en webbplats användarvillkor eller reglerna i robots.txt. Kontrollera webbplatsens policy innan du skrapar den.
Är en genererad sträng identisk med en sträng från en verklig enhet? Den följer samma format och tokenordning som en verklig webbläsare av den typen. På grund av Chromes och Edges versionslåsning på Android kan en genererad Android Chrome-sträng och en verklig sådan vara identiska för plattformsdelen, eftersom verkliga enheter rapporterar samma fasta värde.
Vad är Client Hints, och ersätter det user agent-strängen?
Client Hints är ett nyare system som skickar uppgifter om webbläsare och enhet som separata HTTP-headers i stället för som en kombinerad sträng. Webbläsare börjar stödja detta, men den klassiska User-Agent-headern används fortfarande brett eftersom många befintliga webbplatser fortfarande är beroende av den.