เครื่องสร้าง User Agent แบบสุ่มสำหรับการทดสอบการพัฒนาเว็บ
สร้างสตริง User Agent ของเบราว์เซอร์ที่สมจริงพร้อมตัวเลือกในการกรองตามประเภทอุปกรณ์, ครอบครัวเบราว์เซอร์, และระบบปฏิบัติการ เหมาะสำหรับการทดสอบการพัฒนาเว็บและการตรวจสอบความเข้ากันได้
ตัวสร้าง User Agent แบบสุ่ม
สร้างสตริง User Agent ของเบราว์เซอร์ที่สมจริงและสุ่มสำหรับการทดสอบการพัฒนาเว็บ.
ตัวสร้าง User Agent ที่สร้างขึ้น
เอกสารประกอบการใช้งาน
ตัวสร้าง User Agent แบบสุ่ม
บทนำ
สตริง User Agent เป็นตัวระบุข้อความเฉพาะที่เว็บเบราว์เซอร์และแอปพลิเคชันอื่น ๆ ส่งไปยังเว็บไซต์เพื่อระบุว่าตนเองเป็นใคร สตริงนี้มักประกอบด้วยข้อมูลเกี่ยวกับเบราว์เซอร์ ระบบปฏิบัติการ ประเภทอุปกรณ์ และเครื่องมือในการเรนเดอร์ที่กำลังใช้งาน สำหรับนักพัฒนาเว็บและผู้ทดสอบ การเข้าถึงสตริง User Agent ที่หลากหลายและสมจริงเป็นสิ่งจำเป็นสำหรับการทดสอบความเข้ากันได้ การตอบสนอง และฟังก์ชันการทำงานของเว็บไซต์ในแพลตฟอร์มที่แตกต่างกัน
เครื่องมือสร้าง User Agent แบบสุ่มนี้สร้างสตริง User Agent ที่ดูสมจริงตามพารามิเตอร์ที่คุณเลือก คุณสามารถกรองตามประเภทอุปกรณ์ (เดสก์ท็อปหรือมือถือ) ครอบครัวเบราว์เซอร์ (Chrome, Firefox, Safari หรือ Edge) และระบบปฏิบัติการเพื่อสร้าง User Agent ที่ตรงกับความต้องการในการทดสอบของคุณ เครื่องมือนี้มีอินเทอร์เฟซที่เรียบง่ายพร้อมตัวเลือกในการคัดลอกสตริงที่สร้างขึ้นด้วยการคลิกเพียงครั้งเดียวและสร้างสตริงใหม่แบบสุ่มได้ทันที
โครงสร้าง User Agent
สตริง User Agent จะมีรูปแบบเฉพาะตามเบราว์เซอร์และแพลตฟอร์ม แต่โดยทั่วไปจะประกอบด้วยหลายส่วนที่พบบ่อย:
- ตัวระบุเบราว์เซอร์: มักเริ่มต้นด้วย "Mozilla/5.0" เพื่อความเข้ากันได้ในประวัติศาสตร์
- ข้อมูลแพลตฟอร์ม/OS: รายละเอียดเกี่ยวกับระบบปฏิบัติการ (Windows, macOS, Android, iOS)
- เครื่องมือเบราว์เซอร์: เครื่องมือในการเรนเดอร์ (เช่น Gecko, WebKit หรือ Blink)
- รายละเอียดเบราว์เซอร์: ชื่อและเวอร์ชันของเบราว์เซอร์เฉพาะ
นี่คือการแบ่งส่วนของโครงสร้าง User Agent ที่พบบ่อยสำหรับเบราว์เซอร์หลัก:
Chrome
1Mozilla/5.0 (platform; details) 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
ส่วนแพลตฟอร์มจะแตกต่างกันอย่างมากระหว่างอุปกรณ์เดสก์ท็อปและมือถือ:
ตัวอย่างเดสก์ท็อป:
- Windows:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- Linux:
X11; Linux x86_64
ตัวอย่างมือถือ:
- Android:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
ความแตกต่างของประเภทอุปกรณ์
User Agents เดสก์ท็อป
User Agents เดสก์ท็อปมักจะรวมข้อมูลเกี่ยวกับระบบปฏิบัติการ ข้อมูลสถาปัตยกรรม (เช่น x86_64 หรือ Win64) และบางครั้งรวมถึงการตั้งค่าภาษา พวกเขามักจะมีความสอดคล้องกันมากกว่าระหว่างเบราว์เซอร์มากกว่า User Agents มือถือ
User Agents มือถือ
User Agents มือถือจะมีข้อมูลเกี่ยวกับรุ่นอุปกรณ์ ระบบปฏิบัติการมือถือ และมักจะรวมคำว่า "Mobile" ที่ท้าย User Agent Safari บนอุปกรณ์ iOS จะรวมตัวระบุ "iPhone" หรือ "iPad" ในขณะที่อุปกรณ์ Android จะรวมผู้ผลิตและหมายเลขรุ่น
รูปแบบเวอร์ชันเบราว์เซอร์
แต่ละเบราว์เซอร์จะมีรูปแบบการตั้งเวอร์ชันที่แตกต่างกัน:
- Chrome: ใช้หมายเลขเวอร์ชันแบบสี่ส่วน (เช่น 96.0.4664.110)
- Firefox: โดยทั่วไปจะใช้หมายเลขเวอร์ชันสองหรือสามส่วน (เช่น 95.0 หรือ 95.0.2)
- Safari: ใช้หมายเลขเวอร์ชันที่เรียบง่ายเช่น 15.2
- Edge: ใช้หมายเลขเวอร์ชันที่คล้ายกับ Chrome แต่มีเวอร์ชัน Edge ของตนเอง (เช่น 96.0.1054.62)
กรณีการใช้งาน
การสร้าง User Agent แบบสุ่มมีแอปพลิเคชันที่สำคัญหลายประการในด้านการพัฒนาเว็บและการทดสอบ:
-
การทดสอบความเข้ากันได้ระหว่างเบราว์เซอร์: ทดสอบว่าเว็บไซต์ของคุณแสดงผลและทำงานอย่างไรในเบราว์เซอร์ที่แตกต่างกันโดยไม่จำเป็นต้องติดตั้งเบราว์เซอร์หลายตัวหรือใช้อุปกรณ์หลายตัว
-
การทดสอบการออกแบบที่ตอบสนอง: ตรวจสอบว่าเว็บไซต์ของคุณตรวจจับอุปกรณ์มือถือและเดสก์ท็อปได้อย่างถูกต้องและให้เลย์เอาต์ที่เหมาะสม
-
การตรวจสอบการตรวจจับฟีเจอร์: ตรวจสอบว่ากลไกการตรวจจับฟีเจอร์ของเว็บไซต์ของคุณทำงานอย่างถูกต้องสำหรับความสามารถของเบราว์เซอร์ที่แตกต่างกัน
-
การทดสอบ QA และการทดสอบอัตโนมัติ: รวม User Agents ที่แตกต่างกันลงในสคริปต์การทดสอบอัตโนมัติของคุณเพื่อจำลองสภาพแวดล้อมผู้ใช้ที่แตกต่างกัน
-
การทดสอบประสิทธิภาพ: วิเคราะห์ว่าเว็บไซต์ของคุณทำงานอย่างไรเมื่อเข้าถึงจากสภาพแวดล้อมเบราว์เซอร์ที่แตกต่างกัน
-
การแก้ไขปัญหาที่เฉพาะเจาะจงกับเบราว์เซอร์: ทำซ้ำและแก้ไขข้อบกพร่องที่เกิดขึ้นเฉพาะในเบราว์เซอร์หรือเวอร์ชันเฉพาะ
-
การทดสอบ API: ทดสอบว่า API ของคุณจัดการคำขอจากแอปพลิเคชันลูกค้าที่แตกต่างกันได้อย่างไร
ทางเลือก
ในขณะที่เครื่องมือสร้าง User Agent แบบสุ่มของเรามีประโยชน์สำหรับหลายสถานการณ์การทดสอบ แต่ก็มีวิธีการทางเลือก:
-
บริการทดสอบเบราว์เซอร์: แพลตฟอร์มเช่น BrowserStack, Sauce Labs หรือ LambdaTest ให้เบราว์เซอร์จริงสำหรับการทดสอบแทนที่จะจำลอง User Agent เพียงอย่างเดียว
-
เครื่องมือพัฒนาเบราว์เซอร์: เบราว์เซอร์สมัยใหม่ส่วนใหญ่อนุญาตให้คุณแทนที่ User Agent ผ่านเครื่องมือพัฒนา ซึ่งอาจมีประโยชน์สำหรับการทดสอบอย่างรวดเร็ว
-
ส่วนขยาย User Agent Switcher: ส่วนขยายเบราว์เซอร์ที่อนุญาตให้คุณสลับระหว่าง User Agents ที่กำหนดไว้ล่วงขณะท่องเว็บ
-
เครื่องเสมือนหรือคอนเทนเนอร์: รันอินสแตนซ์จริงของระบบปฏิบัติการและเบราว์เซอร์ที่แตกต่างกันเพื่อการทดสอบที่แม่นยำที่สุด
-
การทดสอบเบราว์เซอร์แบบ Headless: ใช้เครื่องมือเช่น Puppeteer หรือ Selenium เพื่อควบคุมเบราว์เซอร์ด้วยการตั้งค่า User Agent ที่แตกต่างกันในเชิงโปรแกรม
ทางเลือกแต่ละอย่างมีข้อดีของตนเองและอาจเหมาะสมกว่าขึ้นอยู่กับความต้องการและทรัพยากรในการทดสอบเฉพาะของคุณ
ประวัติ
แนวคิดของสตริง User Agent มีมาตั้งแต่ยุคแรก ๆ ของ World Wide Web คำว่า "User Agent" มาจากข้อกำหนด HTTP ซึ่งหมายถึงแอปพลิเคชันไคลเอนต์ที่ทำการร้องขอไปยังเซิร์ฟเวอร์เว็บ
วันแรก (1990s)
เบราว์เซอร์ที่ใช้กันอย่างแพร่หลายตัวแรกคือ NCSA Mosaic ซึ่งรวมถึงสตริง User Agent ที่เรียบง่ายซึ่งระบุชื่อและเวอร์ชันของเบราว์เซอร์ เมื่อ Netscape Navigator ถูกปล่อยออกมา มันใช้รูปแบบที่คล้ายกัน อย่างไรก็ตามเมื่อเซิร์ฟเวอร์เว็บเริ่มให้บริการเนื้อหาที่แตกต่างตามเบราว์เซอร์ จึงเกิดแนวปฏิบัติที่เรียกว่า "การตรวจจับเบราว์เซอร์" ขึ้น
สงครามเบราว์เซอร์และการปลอมแปลง User Agent (ปลายทศวรรษ 1990)
ในช่วงสงครามเบราว์เซอร์ระหว่าง Netscape และ Internet Explorer เว็บไซต์มักจะให้บริการเนื้อหาที่ปรับให้เหมาะสมเฉพาะกับเบราว์เซอร์บางตัว เพื่อให้แน่ใจว่ามีความเข้ากันได้ เบราว์เซอร์จึงเริ่มรวมสตริงที่ระบุว่าตนเองเป็นเบราว์เซอร์อื่น นี่คือเหตุผลที่เบราว์เซอร์สมัยใหม่ส่วนใหญ่ยังคงรวม "Mozilla" ในสตริง User Agent ของตน ซึ่งเป็นการอ้างอิงถึงชื่อรหัสของ Netscape Navigator
การปฏิวัติมือถือ (2000s-2010s)
การเพิ่มขึ้นของอุปกรณ์มือถือได้นำความซับซ้อนใหม่มาสู่สตริง User Agent เบราว์เซอร์มือถือจำเป็นต้องระบุว่าตนเองเป็นมือถือเพื่อให้ได้รับเนื้อหาที่เหมาะสม ซึ่งนำไปสู่การเพิ่มตัวระบุอุปกรณ์และโทเค็นเฉพาะมือถือ
ความท้าท้ายสมัยใหม่ (2010s-ปัจจุบัน)
เมื่อระบบนิเวศของเว็บเติบโตขึ้นอย่างซับซ้อน สตริง User Agent จึงกลายเป็นเรื่องที่ยุ่งเหยิงมากขึ้น พวกเขาตอนนี้มีการอ้างอิงถึงเครื่องมือเบราว์เซอร์หลายตัว (เช่น "AppleWebKit" และ "Gecko") เพื่อความเข้ากันได้ แม้ว่าจะไม่ได้ใช้เครื่องมือเหล่านั้นจริง ๆ ก็ตาม
ความซับซ้อนนี้ได้นำไปสู่ความท้าทายในการวิเคราะห์สตริง User Agent อย่างถูกต้อง และกลุ่มมาตรฐานเว็บบางกลุ่มได้เสนอให้ยกเลิกหรือทำให้สตริง User Agent เรียบง่ายขึ้นเพื่อสนับสนุน Client Hints ที่มีโครงสร้างมากขึ้น อย่างไรก็ตาม เพื่อเหตุผลด้านความเข้ากันได้ในอดีต สตริง User Agent แบบดั้งเดิมยังคงเป็นส่วนสำคัญของการท่องเว็บ
ตัวอย่างโค้ด
นี่คือตัวอย่างวิธีการทำงานกับสตริง User Agent ในภาษาโปรแกรมต่าง ๆ:
1// JavaScript: ตรวจจับประเภทเบราว์เซอร์จากสตริง 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 "Unknown";
21 }
22}
23
24// การใช้งาน
25console.log("คุณกำลังใช้งาน: " + detectBrowser());
26
1# Python: ตั้งค่า User Agent แบบกำหนดเองใน 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# ตัวอย่างการใช้งาน
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]) # พิมพ์ 100 ตัวอักษรแรกของการตอบกลับ
15
1<?php
2// PHP: ตรวจจับอุปกรณ์มือถือโดยใช้ 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// การใช้งาน
16if (isMobileDevice()) {
17 echo "คุณกำลังใช้งานอุปกรณ์มือถือ.";
18} else {
19 echo "คุณกำลังใช้งานอุปกรณ์เดสก์ท็อป.";
20}
21?>
22
1// Java: สร้าง 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: วิเคราะห์สตริง User Agent
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# ตัวอย่างการใช้งาน
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#: ตั้งค่า User Agent ใน HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // สร้าง HttpClient ด้วย User 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 // ทำการร้องขอด้วย User Agent แบบกำหนดเอง
19 HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
20 response.EnsureSuccessStatusCode();
21 string responseBody = await response.Content.ReadAsStringAsync();
22
23 Console.WriteLine($"การตอบกลับที่ได้รับด้วยรหัสสถานะ: {response.StatusCode}");
24 Console.WriteLine(responseBody.Substring(0, 100) + "..."); // 100 ตัวอักษรแรก
25 }
26 catch (HttpRequestException e)
27 {
28 Console.WriteLine($"ข้อผิดพลาดในการร้องขอ: {e.Message}");
29 }
30 }
31 }
32}
33
1// Go: สร้างคำขอ HTTP ด้วย User Agents แบบกำหนดเอง
2package main
3
4import (
5 "fmt"
6 "io/ioutil"
7 "net/http"
8)
9
10func main() {
11 // สร้างคำขอใหม่
12 req, err := http.NewRequest("GET", "https://example.com", nil)
13 if err != nil {
14 fmt.Printf("ข้อผิดพลาดในการสร้างคำขอ: %s\n", err)
15 return
16 }
17
18 // ตั้งค่า User 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 // ส่งคำขอ
22 client := &http.Client{}
23 resp, err := client.Do(req)
24 if err != nil {
25 fmt.Printf("ข้อผิดพลาดในการส่งคำขอ: %s\n", err)
26 return
27 }
28 defer resp.Body.Close()
29
30 // อ่านการตอบกลับ
31 body, err := ioutil.ReadAll(resp.Body)
32 if err != nil {
33 fmt.Printf("ข้อผิดพลาดในการอ่านการตอบกลับ: %s\n", err)
34 return
35 }
36
37 fmt.Printf("สถานะการตอบกลับ: %s\n", resp.Status)
38 fmt.Printf("ตัวอย่างเนื้อหาการตอบกลับ: %s\n", body[:100])
39}
40
รูปแบบ User Agent ที่พบบ่อย
นี่คือตัวอย่างของสตริง User Agent ที่แท้จริงสำหรับเบราว์เซอร์และแพลตฟอร์มต่าง ๆ:
เบราว์เซอร์เดสก์ท็อป
Chrome บน 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 บน macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
Safari บน 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 บน 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
เบราว์เซอร์มือถือ
Chrome บน 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 บน 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 บน Android:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
Samsung Internet บน 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
อ้างอิง
-
"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 toast เพื่อเริ่มให้คำแนะนำเกี่ยวกับเครื่องมือนี้
เครื่องมือที่เกี่ยวข้อง
ค้นพบเครื่องมือเพิ่มเติมที่อาจมีประโยชน์สำหรับการทำงานของคุณ