Tilfældig Brugeragentgenerator til Webudviklingstest
Generer realistiske browser brugeragentstrenge med muligheder for at filtrere efter enhedstype, browserfamilie og operativsystem. Perfekt til webudviklingstest og kompatibilitetstjek.
Tilfældig Brugeragent Generator
Generer tilfældige, realistiske browser brugeragentstrenge til webudviklingstest.
Genereret Brugeragent
Dokumentation
Tilfældig User Agent Generator
Introduktion
En User Agent-streng er en specifik tekstidentifikator, som webbrowser og andre applikationer sender til hjemmesider for at identificere sig selv. Denne streng indeholder typisk information om browseren, operativsystemet, enhedstypen og rendering-motoren, der anvendes. For webudviklere og testere er det essentielt at have adgang til en række realistiske user agent-strenge for at teste hjemmesidens kompatibilitet, responsivitet og funktionalitet på tværs af forskellige platforme.
Dette værktøj til generering af tilfældige user agent-strenge skaber autentiske user agent-strenge baseret på dine valgte parametre. Du kan filtrere efter enhedstype (desktop eller mobil), browserfamilie (Chrome, Firefox, Safari eller Edge) og operativsystem for at generere user agents, der matcher dine testkrav. Værktøjet tilbyder en simpel grænseflade med muligheder for at kopiere den genererede streng med et enkelt klik og generere nye tilfældige strenge øjeblikkeligt.
User Agent Struktur
User agent-strenge følger specifikke mønstre afhængigt af browser og platform, men de indeholder generelt flere fælles komponenter:
- Browseridentifikator: Starter normalt med "Mozilla/5.0" af historiske kompatibilitetsårsager
- Platform/OS Information: Detaljer om operativsystemet (Windows, macOS, Android, iOS)
- Browsermotor: Rendering-motoren (som Gecko, WebKit eller Blink)
- Browserdetaljer: Det specifikke browsernavn og version
Her er en opdeling af typiske user agent-strukturer for større browsere:
Chrome
1Mozilla/5.0 (platform; detaljer) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/version Safari/537.36
2
Firefox
1Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
Safari
1Mozilla/5.0 (platform) AppleWebKit/webkitversion (KHTML, like Gecko) Version/safariversion Safari/safariversion
2
Edge
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
Platformsektionen varierer betydeligt mellem desktop- og mobile enheder:
Desktop Eksempler:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
Mobil Eksempler:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
Forskelle i Enhedstype
Desktop User Agents
Desktop user agents inkluderer typisk specifik information om operativsystemet, arkitekturdetaljer (som x86_64 eller Win64) og nogle gange sprogpræferencer. De har tendens til at være mere konsistente på tværs af browsere end mobile user agents.
Mobile User Agents
Mobile user agents indeholder enhedsmodelinformation, versioner af mobile operativsystemer og inkluderer ofte ordet "Mobile" i slutningen. Mobile Safari på iOS-enheder vil inkludere "iPhone" eller "iPad" identifikatorer, mens Android-enheder inkluderer producent- og modelnummer.
Browser Versionsmønstre
Hver browser følger forskellige versionsmønstre:
- Chrome: Bruger fire-delte versionsnumre (f.eks. 96.0.4664.110)
- Firefox: Typisk bruger to eller tre-delte versionsnumre (f.eks. 95.0 eller 95.0.2)
- Safari: Bruger simple versionsnumre som 15.2
- Edge: Bruger versionsnumre, der ligner Chrome, men med sin egen Edge-version (f.eks. 96.0.1054.62)
Anvendelsessager
Generering af tilfældige user agents har flere vigtige anvendelser inden for webudvikling og testning:
-
Test af tværbrowserkompatibilitet: Test hvordan din hjemmeside gengives og fungerer på tværs af forskellige browsere uden at skulle installere flere browsere eller bruge flere enheder.
-
Test af responsivt design: Bekræft, at din hjemmeside korrekt opdager mobile og desktop-enheder og serverer det passende layout.
-
Validering af funktionsdetektering: Sørg for, at din hjemmesides funktionsdetekteringsmekanismer fungerer korrekt for forskellige browserkapaciteter.
-
QA og automatiseret testning: Inkorporer forskellige user agents i dine automatiserede testscript for at simulere forskellige brugeromgivelser.
-
Ydelsestestning: Analyser, hvordan din hjemmeside præsterer, når den tilgås fra forskellige browser-miljøer.
-
Fejlretning af browser-specifikke problemer: Genskab og ret fejl, der kun opstår i specifikke browsere eller versioner.
-
API testning: Test hvordan dit API håndterer anmodninger fra forskellige klientapplikationer.
Alternativer
Selvom vores tilfældige user agent-generator er nyttig til mange testscenarier, er der alternative tilgange:
-
Browser-testtjenester: Platforme som BrowserStack, Sauce Labs eller LambdaTest giver faktiske browserinstanser til testning i stedet for blot at simulere user agent.
-
Browserudviklerværktøjer: De fleste moderne browsere giver dig mulighed for at overskrive user agent gennem deres udviklerværktøjer, hvilket kan være nyttigt til hurtige tests.
-
User Agent Switcher-udvidelser: Browserudvidelser, der giver dig mulighed for at skifte mellem foruddefinerede user agents, mens du surfer.
-
Virtuelle maskiner eller containere: Køre faktiske instanser af forskellige operativsystemer og browsere for den mest nøjagtige testning.
-
Headless browser-testning: Brug værktøjer som Puppeteer eller Selenium til programmatisk at kontrollere browsere med forskellige user agent-indstillinger.
Hver alternativ har sine egne fordele og kan være mere passende afhængigt af dine specifikke testbehov og ressourcer.
Historie
Begrebet user agent-streng går tilbage til de tidlige dage af World Wide Web. Begrebet "user agent" stammer fra HTTP-specifikationen, hvor det refererer til klientapplikationen, der foretager en anmodning til en webserver.
Tidlige Dage (1990'erne)
Den første bredt anvendte browser, NCSA Mosaic, inkluderede en simpel user agent-streng, der identificerede browserens navn og version. Da Netscape Navigator blev udgivet, brugte den et lignende format. Men efterhånden som webservere begyndte at levere forskelligt indhold baseret på browseren, opstod en praksis kendt som "browser sniffing".
Browserkrigene og User Agent Spoofing (Sene 1990'ere)
Under browserkrigene mellem Netscape og Internet Explorer serverede hjemmesider ofte optimeret indhold udelukkende til specifikke browsere. For at sikre kompatibilitet begyndte browsere at inkludere strenge, der identificerede dem som andre browsere. Dette er grunden til, at de fleste moderne browsere stadig inkluderer "Mozilla" i deres user agent-strenge, en reference til Netscape Navigators kode navn.
Mobilrevolutionen (2000'erne-2010'erne)
Stigningen af mobile enheder introducerede ny kompleksitet til user agent-strenge. Mobile browsere skulle identificere sig selv som mobile for at modtage passende indhold, hvilket førte til tilføjelsen af enhedsidentifikatorer og mobile specifikke tokens.
Moderne Udfordringer (2010'erne-Nu)
Efterhånden som webøkosystemet er blevet mere komplekst, er user agent-strenge blevet stadig mere indviklede. De indeholder nu referencer til flere browsermotorer (som "AppleWebKit" og "Gecko") af kompatibilitetsårsager, selv når disse motorer ikke faktisk anvendes.
Denne kompleksitet har ført til udfordringer med nøjagtigt at analysere user agent-strenge, og nogle webstandardgrupper har foreslået at afskrive eller forenkle user agent-strenge til fordel for mere strukturerede klient-hints. Men af bagudkompatibilitetsårsager forbliver den traditionelle user agent-streng en væsentlig del af websurfing.
Kode Eksempler
Her er eksempler på, hvordan man arbejder med user agent-strenge i forskellige programmeringssprog:
1// JavaScript: Detektere browsertype fra user agent
2function detectBrowser() {
3 const userAgent = navigator.userAgent;
4
5 if (userAgent.indexOf("Firefox") > -1) {
6 return "Firefox";
7 } else if (userAgent.indexOf("SamsungBrowser") > -1) {
8 return "Samsung Browser";
9 } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
10 return "Opera";
11 } else if (userAgent.indexOf("Trident") > -1) {
12 return "Internet Explorer";
13 } else if (userAgent.indexOf("Edge") > -1) {
14 return "Edge";
15 } else if (userAgent.indexOf("Chrome") > -1) {
16 return "Chrome";
17 } else if (userAgent.indexOf("Safari") > -1) {
18 return "Safari";
19 } else {
20 return "Ukendt";
21 }
22}
23
24// Brug
25console.log("Du bruger: " + detectBrowser());
26
1# Python: Indstille brugeragent i requests
2import requests
3
4def fetch_with_user_agent(url, user_agent):
5 headers = {
6 'User-Agent': user_agent
7 }
8 response = requests.get(url, headers=headers)
9 return response.text
10
11# Eksempel på brug
12chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
13content = fetch_with_user_agent('https://example.com', chrome_ua)
14print(content[:100]) # Print de første 100 tegn af svaret
15
1<?php
2// PHP: Detektere mobile enheder ved hjælp af user agent
3function isMobileDevice() {
4 $userAgent = $_SERVER['HTTP_USER_AGENT'];
5 $mobileKeywords = array('Mobile', 'Android', 'iPhone', 'iPad', 'Windows Phone');
6
7 foreach ($mobileKeywords as $keyword) {
8 if (stripos($userAgent, $keyword) !== false) {
9 return true;
10 }
11 }
12 return false;
13}
14
15// Brug
16if (isMobileDevice()) {
17 echo "Du bruger en mobil enhed.";
18} else {
19 echo "Du bruger en desktop enhed.";
20}
21?>
22
1// Java: Generere en tilfældig user agent
2import java.util.Random;
3
4public class UserAgentGenerator {
5 private static final String[] CHROME_VERSIONS = {"96.0.4664.110", "95.0.4638.69", "94.0.4606.81"};
6 private static final String[] OS_VERSIONS = {"Windows NT 10.0; Win64; x64",
7 "Macintosh; Intel Mac OS X 10_15_7",
8 "X11; Linux x86_64"};
9
10 public static String generateRandomChromeUserAgent() {
11 Random random = new Random();
12 String osVersion = OS_VERSIONS[random.nextInt(OS_VERSIONS.length)];
13 String chromeVersion = CHROME_VERSIONS[random.nextInt(CHROME_VERSIONS.length)];
14
15 return "Mozilla/5.0 (" + osVersion + ") AppleWebKit/537.36 (KHTML, like Gecko) " +
16 "Chrome/" + chromeVersion + " Safari/537.36";
17 }
18
19 public static void main(String[] args) {
20 System.out.println(generateRandomChromeUserAgent());
21 }
22}
23
1# Ruby: Parsing user agent-streng
2require 'user_agent_parser'
3
4def parse_user_agent(user_agent_string)
5 parser = UserAgentParser::Parser.new
6 client = parser.parse(user_agent_string)
7
8 {
9 browser_name: client.family,
10 browser_version: client.version.to_s,
11 os_name: client.os.family,
12 os_version: client.os.version.to_s,
13 device: client.device.family
14 }
15end
16
17# Eksempel på brug
18ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Mobile/15E148 Safari/604.1'
19info = parse_user_agent(ua)
20puts info
21
1// C#: Indstille bruger agent i HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // Opret HttpClient med bruger agent
11 using (var httpClient = new HttpClient())
12 {
13 string userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36";
14 httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
15
16 try
17 {
18 // Foretag anmodning med bruger agent
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Svar modtaget med statuskode: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Første 100 tegn
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Anmodningsfejl: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: Oprette HTTP-anmodninger med brugeragenter
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Opret en ny anmodning
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Fejl ved oprettelse af anmodning: %s\n", err)
15 return
16 }
17
18 // Indstil bruger agent
19 req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36")
20
21 // Send anmodningen
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Fejl ved sending af anmodning: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Læs svaret
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Fejl ved læsning af svar: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Svarstatus: %s\n", resp.Status)
38 fmt.Printf("Forhåndsvisning af svarindhold: %s\n", body[:100])
39}
40
Almindelige User Agent Mønstre
Her er nogle eksempler på virkelige user agent-strenge for forskellige browsere og platforme:
Desktop Browsere
Chrome på Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
2
Firefox på macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari på macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
2
Edge på Windows:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
2
Mobile Browsere
Chrome på Android:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
Safari på iPhone:
1Mozilla/5.0 (iPhone; CPU iPhone OS 15_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Mobile/15E148 Safari/604.1
2
Firefox på Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet på Galaxy:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/16.0 Chrome/92.0.4515.166 Mobile Safari/537.36
2
Referencer
-
"User Agent." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"Browser User Agent Strings." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"HTTP User-Agent Header Explained." KeyCDN, https://www.keycdn.com/support/user-agent
-
"Client Hints." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"History of the browser user-agent string." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"Browser Detection Using the User Agent." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Feedback
Klik på feedback-toasten for at begynde at give feedback om dette værktøj.
Relaterede Værktøjer
Opdag flere værktøjer, der måske kan være nyttige for din arbejdsgang.