Tilfældig User Agent Generator - Opret Browser-strenge
Generer autentiske user agent-strenge til Chrome, Firefox, Safari og Edge. Test browserkompatibilitet, responsivt design og API'er med realistiske browser-identifikatorer.
Tilfældig User Agent Generator
Generer tilfældige, realistiske browser user agent strenge til webudviklingstest.
Genereret User Agent
Dokumentation
Generator til tilfældige user agent-strenge
En generator til tilfældige user agent-strenge opretter eksempler på user agent-strenge, de korte tekstlinjer, som en webbrowser sender til et websted for at identificere sig selv. Værktøjet opbygger strenge, der følger det virkelige format, som Chrome, Firefox, Safari og Edge bruger på både stationære og mobile enheder, så udviklere kan teste, hvordan et websted reagerer på forskellige browsere uden at installere dem alle.
Hvad er en user agent-streng?
Hver gang en browser anmoder om en webside, sender den en HTTP-header med User-Agent. Headeren er en enkelt tekstlinje, der beskriver browserens navn og version, operativsystemet samt gengivelsesmotoren (den del af browseren, der tegner siden). Et websted kan læse denne header for at afgøre, hvilket sidelayout eller hvilke funktioner det skal sende tilbage.
En typisk user agent-streng ser sådan ud:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
2Næsten alle browsere begynder deres streng med "Mozilla/5.0". Det er en rest fra 1990'erne, hvor websteder kontrollerede dette ord for at afgøre, om en browser var avanceret nok til at vise en side. Nyere browsere beholdt tokenet, så de ikke blev blokeret af gamle kontroller.
Sådan fungerer denne generator
Værktøjet har tre indstillinger:
- Enhedstype – Stationær eller mobil.
- Browserfamilie – Chrome, Firefox, Safari eller Edge.
- Operativsystem – Windows, macOS eller Linux for stationære enheder; iOS eller Android for mobile enheder.
Ikke alle kombinationer findes i virkeligheden, så værktøjet begrænser valgmulighederne. Safari vises kun på macOS og iOS, fordi Apple ikke leverer Safari til Windows, Linux eller Android. Chrome, Firefox og Edge findes på alle de angivne operativsystemer, også iOS, hvor de kører som et lag oven på Apples WebKit-motor i stedet for deres egen motor.
Et klik på "Generer ny" opbygger en streng ud fra disse tre indstillinger og et tilfældigt valgt versionsnummer. Knappen "Kopiér" kopierer resultatet til udklipsholderen.
Formatet for user agent-strenge efter browser
Hver browser udfylder en tilsvarende skabelon med sine egne tokens.
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, at alle iOS-browsere bruger WebKit, så iOS-formaterne ovenfor deler Safaris motortoken AppleWebKit/605.1.15 og tilføjer en browserspecifik markør: CriOS/ for Chrome, FxiOS/ for Firefox og EdgiOS/ for Edge. Ingen af dem indeholder et Chrome/- eller Gecko/-token. Safari og Edge på iOS sender også et Version/-token, som angiver den Safari-version, der fulgte med operativsystemet, så den altid svarer til iOS-versionen i den samme streng.
Siden 2021 har Chrome og Chromium-baserede browsere som Edge fastlåst det meste af deres versionsnummer på stationære enheder og Android for at mindske mængden af identificerende oplysninger i headeren, en ændring Google kalder "User-Agent Reduction". I stedet for et ægte buildnummer står Chrome-tokenet i disse strenge altid som major.0.0.0 (for eksempel 128.0.0.0), og denne generator følger denne adfærd. Undtagelserne er Edges eget token — Edg/ på stationære enheder, EdgA/ på Android og EdgiOS/ på iOS — samt Chrome på iOS (CriOS/), som stadig indeholder et komplet buildnummer i fire dele, fordi Googles reduktionspolitik ikke gælder for dem.
Firefox har ikke indført den samme fastlåsning. Dets virkelige versionsstreng består normalt kun af to dele, major.0, og det er den form, generatoren producerer. En Firefox-version i tre dele som 95.0.2 kan forekomme i praksis efter en sikkerhedsopdatering, men dette værktøj genererer kun formen med to dele.
Eksempler på output
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
2Forskelle mellem stationære og mobile enheder
Strenge for stationære enheder angiver operativsystemet og ofte også processorarkitekturen: Win64; x64 for Windows på 64 bit eller Intel Mac OS X for en Mac. De er forholdsvis ensartede, eftersom der kun er en håndfuld stationære platforme at repræsentere.
Mobile strenge tilføjer normalt ordet "Mobile", så et websted ved, at det skal levere et berøringsvenligt layout. iOS-enheder identificerer sig som "iPhone" sammen med iOS-versionen, skrevet med understregninger (17_4) og uden et afsluttende nul for en rettelse, altså 17_4 i stedet for 17_4_0. Android fungerer anderledes: På grund af den samme versionsreduktionspolitik, som påvirker Chromes buildnummer, angiver Chrome og Edge på Android altid platformen som Linux; Android 10; K, uanset hvilken Android-version eller telefonmodel der faktisk kører. "K" er en pladsholder og ikke en ægte enhedskode, og den faktiske Android-version skjules. Firefox til Android fastlåser ikke versionen på samme måde, men angiver i stedet den faktiske Android-hovedversion; den indeholder dog slet ingen enhedsmodel. En generator, der viser en bestemt telefonmodel, f.eks. et Galaxy-modelnummer, i en Android Chrome-streng, ville derfor ikke svare til den måde, som den aktuelle Chrome i virkeligheden fungerer på.
Hvorfor user agent-strenge ser forvirrende ud
Strengen ser rodet ud på grund af årtiers kompatibilitetstilpasninger. Under "browserkrigene" i slutningen af 1990'erne sendte nogle websteder bedre sider kun til Netscape eller kun til Internet Explorer og kontrollerede nøgleord i headeren. Konkurrerende browsere reagerede ved at tilføje de samme nøgleord til deres egne strenge, så de ikke blev afvist. Derfor nævner Chromes streng stadig "Safari" og "like Gecko", selv om den ikke bruger nogen af disse motorer under det navn. Hvert token er en rest af en håndtryksmekanisme, der skulle opfylde en gammel kompatibilitetskontrol, snarere end en sandfærdig beskrivelse af softwaren.
Fordi så mange websteder stadig fortolker disse strenge, kan browserproducenterne ikke bare fjerne rodet uden at ødelægge sider. Den langsigtede erstatning, som kaldes User-Agent Client Hints, sender browseroplysninger som separate, strukturerede headere i stedet for én lang streng, men den klassiske User-Agent-header sendes stadig overalt af hensyn til bagudkompatibilitet.
Almindelige anvendelser
- Kompatibilitetstest. Kontroller, hvordan en side gengives, når den registrerer en bestemt browser, uden at installere den pågældende browser.
- Kontrol af responsivt design. Bekræft, at et websted leverer et mobillayout, når det modtager en mobil user agent, og ellers et stationært layout.
- Automatiserede testpakker. Giv testscripts en række user agent-strenge for at kontrollere, at browserregistreringskoden håndterer hver af dem korrekt.
- Test af API'er og headere. Kontrollér, at en server fungerer korrekt, når forskellige klienttyper sender anmodninger.
Begrænsninger
User agent-headeren er kun ét af mange signaler, som et websted kan læse. Scripts, der kører på siden, kan kontrollere snesevis af andre oplysninger, f.eks. installerede skrifttyper, skærmstørrelse og hvordan grafikkortet gengiver et testbillede, en teknik der kaldes fingeraftryk. Hvis man indstiller en Chrome-user agent, mens man faktisk bruger Firefox, vil det ikke narre et websted, der kontrollerer disse andre signaler; uoverensstemmelsen er let at opdage. Til almindeligt udviklings- og QA-arbejde er en korrekt formateret genereret streng dog nok til at teste, hvordan et websteds server- og klientkode reagerer på forskellige browsere og enheder.
Ofte stillede spørgsmål
Hvad er en user agent-streng? Det er en tekstlinje, som en browser sender med hver webanmodning, og som angiver browseren, dens version, operativsystemet og gengivelsesmotoren. Servere bruger den til at afgøre, hvilket indhold eller layout der skal returneres.
Hvorfor ender Chrome-versionen altid på .0.0.0?
Siden 2021 har Chrome fastlåst det meste af det versionsnummer, som den angiver i User-Agent-headeren, for at mindske fingeraftryk. Kun det større versionsnummer ændres; resten er fastlåst til .0.0.0. Edges eget token og alle browsere på iOS er undtagelserne og viser stadig et komplet buildnummer.
Hvorfor siger en iPhone-streng "Safari", selv når der er valgt en anden browser?
Apple kræver, at alle iOS-browsere bruger WebKit-motoren, så Chrome, Firefox og Edge på iOS alle angiver WebKit og slutter med et Safari/-token. Browseren angives af en separat markør: CriOS/ for Chrome, FxiOS/ for Firefox og EdgiOS/ for Edge.
Hvorfor viser Android-strengen ikke min telefonmodel?
Moderne Chrome og Edge på Android angiver en fast platformstreng, Linux; Android 10; K, for alle enheder og alle faktiske Android-versioner som en del af den samme versionsreduktionspolitik, der påvirker Chromes buildnummer. Den faktiske model og Android-versionen eksponeres ikke.
Kan jeg bruge en genereret user agent til webscraping?
Det er muligt at ændre headeren, men websteder kan registrere en uoverensstemmelse gennem andre signaler, og scraping kan være i strid med et websteds servicevilkår eller reglerne i robots.txt. Kontrollér webstedets politikker, før det scrapes.
Er en genereret streng identisk med en streng fra en ægte enhed? Den følger samme format og tokenrækkefølge som en ægte browser af den pågældende type. På grund af Chromes og Edges versionsfastlåsning på Android kan en genereret Android Chrome-streng og en ægte streng være identiske for platformens vedkommende, eftersom ægte enheder angiver den samme faste værdi.
Hvad er Client Hints, og erstatter det user agent-strengen?
Client Hints er et nyere system, der sender oplysninger om browser og enhed som separate HTTP-headere i stedet for én samlet streng. Browsere er begyndt at understøtte det, men den klassiske User-Agent-header er stadig udbredt, fordi mange eksisterende websteder fortsat er afhængige af den.