Valósághű böngésző felhasználói ügynök karakterláncok generálása, lehetőséggel a szűrésre eszköztípus, böngésző család és operációs rendszer szerint. Tökéletes webfejlesztési teszteléshez és kompatibilitási ellenőrzésekhez.
Véletlenszerű, reális böngésző felhasználói ügynök karakterláncok generálása webfejlesztési teszteléshez.
A Felhasználói Ügynök (User Agent) string egy specifikus szöveges azonosító, amelyet a web böngészők és más alkalmazások küldenek a weboldalaknak, hogy azonosítsák magukat. Ez a string általában tartalmaz információkat a böngészőről, operációs rendszerről, eszköztípusról és a használt renderelő motorról. Webfejlesztők és tesztelők számára elengedhetetlen, hogy hozzáférjenek különböző, reális felhasználói ügynök stringekhez a weboldal kompatibilitásának, reszponzivitásának és funkcióinak teszteléséhez különböző platformokon.
Ez a Véletlenszerű Felhasználói Ügynök Generátor eszköz hitelesnek tűnő felhasználói ügynök stringeket hoz létre a kiválasztott paraméterek alapján. Szűrhet a készülék típusa (asztali vagy mobil), böngésző család (Chrome, Firefox, Safari vagy Edge) és operációs rendszer szerint, hogy olyan ügynököket generáljon, amelyek megfelelnek a tesztelési követelményeinek. Az eszköz egy egyszerű felületet biztosít, amely lehetővé teszi a generált string egyetlen kattintással történő másolását és új véletlenszerű stringek azonnali generálását.
A felhasználói ügynök stringek követnek bizonyos mintákat a böngésző és a platform függvényében, de általában több közös összetevőt tartalmaznak:
Íme egy tipikus felhasználói ügynök szerkezet a főbb böngészők esetében:
1Mozilla/5.0 (platform; details) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/version Safari/537.36
2
1Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
2
1Mozilla/5.0 (platform) AppleWebKit/webkitversion (KHTML, like Gecko) Version/safariversion Safari/safariversion
2
1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion
2
A platform szakasz jelentősen változik az asztali és mobil eszközök között:
Asztali Példák:
Windows NT 10.0; Win64; x64
Macintosh; Intel Mac OS X 10_15_7
X11; Linux x86_64
Mobil Példák:
Linux; Android 12; SM-G998B
iPhone; CPU iPhone OS 15_4 like Mac OS X
Az asztali felhasználói ügynökök általában tartalmaznak specifikus operációs rendszer információkat, architektúra részleteket (mint x86_64 vagy Win64), és néha nyelvi preferenciákat. Általában következetesebbek a böngészők között, mint a mobil felhasználói ügynökök.
A mobil felhasználói ügynökök tartalmazzák az eszköz modell információit, mobil operációs rendszer verziókat, és gyakran tartalmazzák a "Mobile" szót a végén. A mobil Safari iOS eszközökön "iPhone" vagy "iPad" azonosítókat fog tartalmazni, míg az Android eszközök a gyártót és a modell számot.
Minden böngésző különböző verziózási mintákat követ:
A véletlenszerű felhasználói ügynök generálásának számos fontos alkalmazása van a webfejlesztés és tesztelés terén:
Keresztböngészős Kompatibilitás Tesztelés: Tesztelje, hogyan jelenik meg és működik a weboldala különböző böngészőkben anélkül, hogy több böngészőt kellene telepítenie vagy több eszközt használnia.
Reszponzív Tervezés Tesztelés: Ellenőrizze, hogy a weboldala helyesen észleli a mobil és asztali eszközöket, és a megfelelő elrendezést szolgáltatja.
Funkció Észlelési Validálás: Győződjön meg arról, hogy a weboldala funkcióészlelési mechanizmusai helyesen működnek különböző böngésző képességek esetén.
QA és Automatizált Tesztelés: Incorporálja a különböző felhasználói ügynököket az automatizált tesztelési szkriptekbe, hogy szimulálja a különböző felhasználói környezeteket.
Teljesítmény Tesztelés: Elemezze, hogyan teljesít a weboldala, amikor különböző böngésző környezetekből érik el.
Böngésző-specifikus Problémák Hibakeresése: Reprodukálja és javítsa a hibákat, amelyek csak bizonyos böngészőkben vagy verziókban fordulnak elő.
API Tesztelés: Tesztelje, hogyan kezeli az API a különböző kliensalkalmazásokból érkező kéréseket.
Bár a véletlenszerű felhasználói ügynök generátor hasznos sok tesztelési forgatókönyvben, vannak alternatív megközelítések is:
Böngésző Tesztelő Szolgáltatások: Olyan platformok, mint a BrowserStack, Sauce Labs vagy LambdaTest valódi böngésző példányokat biztosítanak teszteléshez, nem csupán a felhasználói ügynök szimulálásához.
Böngésző Fejlesztői Eszközök: A legtöbb modern böngésző lehetővé teszi a felhasználói ügynök felülírását a fejlesztői eszközeiken keresztül, ami hasznos lehet gyors tesztekhez.
Felhasználói Ügynök Váltó Bővítmények: Böngészőbővítmények, amelyek lehetővé teszik, hogy váltsanak a meghatározott felhasználói ügynökök között a böngészés során.
Virtuális Gépek vagy Konténerek: Különböző operációs rendszerek és böngészők valódi példányainak futtatása a legpontosabb tesztelés érdekében.
Fej nélküli Böngésző Tesztelés: Olyan eszközök használata, mint a Puppeteer vagy Selenium, hogy programozottan vezéreljék a böngészőket különböző felhasználói ügynök beállításokkal.
Minden alternatívának megvannak a saját előnyei, és a konkrét tesztelési igények és erőforrások függvényében lehet, hogy megfelelőbbek.
A felhasználói ügynök string fogalma a World Wide Web korai napjaiból származik. A "felhasználói ügynök" kifejezés az HTTP specifikációból származik, ahol a webkiszolgálóhoz kérést küldő kliensalkalmazást jelenti.
Az első széles körben használt böngésző, az NCSA Mosaic, egy egyszerű felhasználói ügynök stringet tartalmazott, amely azonosította a böngésző nevét és verzióját. Amikor megjelent a Netscape Navigator, hasonló formátumot használt. Azonban ahogy a webkiszolgálók elkezdtek különböző tartalmat szolgáltatni a böngészők alapján, a "böngésző szaglászás" nevű gyakorlat jelent meg.
A Netscape és az Internet Explorer közötti böngésző háborúk alatt a weboldalak gyakran kizárólag a specifikus böngészők számára optimalizált tartalmat szolgáltattak. A kompatibilitás biztosítása érdekében a böngészők elkezdtek olyan stringeket tartalmazni, amelyek azonosították magukat más böngészőkként. Ezért a legtöbb modern böngésző még mindig tartalmazza a "Mozilla" kifejezést a felhasználói ügynök stringjeikben, ami a Netscape Navigator kódnevére utal.
A mobil eszközök térnyerése új bonyolultságokat hozott a felhasználói ügynök stringekbe. A mobil böngészőknek azonosítaniuk kellett magukat mobilként, hogy megfelelő tartalmat kapjanak, ami a készülék azonosítók és mobil-specifikus tokenek hozzáadásához vezetett.
Ahogy a web ökoszisztéma egyre bonyolultabbá vált, a felhasználói ügynök stringek egyre zavarosabbá váltak. Most már több böngészőmotorra (mint az "AppleWebKit" és "Gecko") vonatkozó hivatkozásokat tartalmaznak a kompatibilitás érdekében, még akkor is, ha ezek a motorok valójában nem használatosak.
Ez a bonyolultság kihívásokat jelentett a felhasználói ügynök stringek pontos elemzésében, és néhány webszabványok csoportja javasolta a felhasználói ügynök stringek elavulttá tételét vagy egyszerűsítését a strukturált kliens utalások érdekében. Azonban a hátrameneti kompatibilitás miatt a hagyományos felhasználói ügynök string továbbra is alapvető részét képezi a webböngészésnek.
Íme néhány példa arra, hogyan lehet dolgozni a felhasználói ügynök stringekkel különböző programozási nyelvekben:
1// JavaScript: Böngésző típusának észlelése a felhasználói ügynökből
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 "Ismeretlen";
21 }
22}
23
24// Használat
25console.log("Ön a következőt használja: " + detectBrowser());
26
1# Python: Egyedi felhasználói ügynök beállítása a kérésekhez
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# Példa használat
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]) # Az első 100 karakter a válaszból
15
1<?php
2// PHP: Mobil eszközök észlelése a felhasználói ügynök alapján
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// Használat
16if (isMobileDevice()) {
17 echo "Ön mobil eszközt használ.";
18} else {
19 echo "Ön asztali eszközt használ.";
20}
21?>
22
1// Java: Véletlenszerű felhasználói ügynök generálása
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: Felhasználói ügynök string elemzése
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# Példa használat
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#: Felhasználói ügynök beállítása HttpClient-ben
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // HttpClient létrehozása egyedi felhasználói ügynökkel
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 // Kérés küldése egyedi felhasználói ügynökkel
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"Válasz érkezett a következő státusz kóddal: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // Az első 100 karakter
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"Kérés hiba: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: HTTP kérések létrehozása egyedi felhasználói ügynökökkel
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // Új kérés létrehozása
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("Hiba a kérés létrehozásakor: %s\n", err)
15 return
16 }
17
18 // Egyedi felhasználói ügynök beállítása
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 // Kérés küldése
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("Hiba a kérés küldésekor: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // Válasz olvasása
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("Hiba a válasz olvasásakor: %s\n", err)
34 return
35 }
36
37 fmt.Printf("Válasz státusz: %s\n", resp.Status)
38 fmt.Printf("Válasz törzs előnézete: %s\n", body[:100])
39}
40
Íme néhány példa valódi felhasználói ügynök stringekre különböző böngészők és platformok esetében:
Chrome Windows-on:
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 macOS-en:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari macOS-en:
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 Windows-on:
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
Chrome Android-on:
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 iPhone-on:
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 Android-on:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet Galaxy-n:
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
"Felhasználói ügynök." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
"Böngésző Felhasználói Ügynök Stringek." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
"HTTP Felhasználói Ügynök Fejléc Magyarázata." KeyCDN, https://www.keycdn.com/support/user-agent
"Kliens Utalások." MDN Web Docs, Mozilla, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
"A böngésző felhasználói ügynök string története." WebAIM, https://webaim.org/blog/user-agent-string-history/
"Böngésző Észlelés a Felhasználói Ügynök Használatával." Google Developers, https://developer.chrome.com/docs/multidevice/user-agent/
Fedezzen fel több olyan eszközt, amely hasznos lehet a munkafolyamatához