גנרטור סוכן משתמש אקראי לבדיקת פיתוח אתרים
הפק סוכני משתמש מציאותיים עם אפשרויות לסינון לפי סוג מכשיר, משפחת דפדפן ומערכת הפעלה. מושלם לבדיקות פיתוח אתרים ובדיקות תאימות.
גנרטור סוכן משתמש אקראי
צור מחרוזות סוכן משתמש אקראיות וריאליסטיות לבדיקות פיתוח אתרים.
סוכן משתמש שנוצר
תיעוד
מחולל סוכן משתמש אקראי
הקדמה
מחרוזת סוכן משתמש היא מזהה טקסט ספציפי שדפדפנים ואפליקציות אחרות שולחים לאתרים כדי לזהות את עצמם. מחרוזת זו מכילה בדרך כלל מידע על הדפדפן, מערכת ההפעלה, סוג המכשיר ומנוע ההצגה בשימוש. עבור מפתחים ובודקי אתרים, גישה למגוון מחרוזות סוכן משתמש ריאליסטיות היא חיונית לבדיקת תאימות, תגובתיות ופונקציונליות של אתרים על פני פלטפורמות שונות.
כלי מחולל סוכן משתמש אקראי זה יוצר מחרוזות סוכן משתמש שנראות אותנטיות בהתבסס על הפרמטרים הנבחרים שלך. תוכל לסנן לפי סוג מכשיר (שולחני או נייד), משפחת דפדפן (כרום, פיירפוקס, ספארי או אדג') ומערכת הפעלה כדי לייצר סוכני משתמש שמתאימים לדרישות הבדיקה שלך. הכלי מספק ממשק פשוט עם אפשרויות להעתיק את המחרוזת שנוצרה בלחיצה אחת וליצור מחרוזות אקראיות חדשות מיד.
מבנה סוכן משתמש
מחרוזות סוכן משתמש עוקבות אחר תבניות ספציפיות בהתאם לדפדפן ולפלטפורמה, אך הן מכילות בדרך כלל מספר רכיבים משותפים:
- מזהה דפדפן: בדרך כלל מתחיל ב-"Mozilla/5.0" מסיבות תאימות היסטוריות
- מידע על הפלטפורמה/מערכת ההפעלה: פרטים על מערכת ההפעלה (ווינדוס, macOS, אנדרואיד, iOS)
- מנוע דפדפן: מנוע ההצגה (כמו גקו, וובקט או בלינק)
- פרטי דפדפן: שם הדפדפן הספציפי והגרסה
הנה פיצול של מבני סוכן משתמש טיפוסיים עבור דפדפנים מרכזיים:
כרום
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
הקטע של הפלטפורמה משתנה באופן משמעותי בין מכשירים שולחניים לניידים:
דוגמאות שולחניות:
- ווינדוס:
Windows NT 10.0; Win64; x64
- macOS:
Macintosh; Intel Mac OS X 10_15_7
- לינוקס:
X11; Linux x86_64
דוגמאות ניידות:
- אנדרואיד:
Linux; Android 12; SM-G998B
- iOS:
iPhone; CPU iPhone OS 15_4 like Mac OS X
הבדלים בסוגי מכשירים
סוכני משתמש שולחניים
סוכני משתמש שולחניים כוללים בדרך כלל מידע ספציפי על מערכת ההפעלה, פרטי ארכיטקטורה (כמו x86_64 או Win64), ולעיתים קרובות העדפות שפה. הם נוטים להיות עקביים יותר בין דפדפנים מאשר סוכני משתמש ניידים.
סוכני משתמש ניידים
סוכני משתמש ניידים מכילים מידע על דגם המכשיר, גרסאות מערכות הפעלה ניידות, ולעיתים קרובות כוללים את המילה "נייד" בסוף. ספארי נייד במכשירי iOS יכלול מזהים של "iPhone" או "iPad", בעוד שמכשירי אנדרואיד כוללים את היצרן ומספר הדגם.
תבניות גרסה של דפדפן
כל דפדפן עוקב אחר תבניות גרסה שונות:
- כרום: משתמש במספרי גרסה בני ארבעה חלקים (למשל, 96.0.4664.110)
- פיירפוקס: בדרך כלל משתמש במספרי גרסה בני שניים או שלושה חלקים (למשל, 95.0 או 95.0.2)
- ספארי: משתמש במספרי גרסה פשוטים כמו 15.2
- אדג': משתמש במספרי גרסה דומים לכרום אך עם גרסת אדג' משלו (למשל, 96.0.1054.62)
מקרי שימוש
יצירת סוכן משתמש אקראי יש לה מספר יישומים חשובים בפיתוח אתרים ובדיקות:
-
בדיקות תאימות בין דפדפנים: בדוק כיצד האתר שלך מצטלם ופועל על פני דפדפנים שונים מבלי להידרש להתקין מספר דפדפנים או להשתמש במכשירים שונים.
-
בדיקות עיצוב רספונסיבי: ודא שהאתר שלך מזהה נכון מכשירים ניידים ושולחניים ומספק את הפריסה המתאימה.
-
אימות זיהוי תכונות: ודא שהמנגנונים לזיהוי תכונות באתר שלך פועלים כראוי עבור יכולות דפדפן שונות.
-
בדיקות QA ובדיקות אוטומטיות: שלב סוכני משתמש שונים בתסריטי הבדיקה האוטומטית שלך כדי לדמות סביבות משתמש שונות.
-
בדיקות ביצועים: נתח כיצד האתר שלך מתפקד כאשר הוא ניגש מדפדפנים שונים.
-
ניפוי בעיות ספציפיות לדפדפן: שחזר ותיקן באגים המתרחשים רק בדפדפנים או גרסאות מסוימות.
-
בדיקות API: בדוק כיצד ה-API שלך מטפל בבקשות מיישומי לקוח שונים.
חלופות
בעוד שמחולל סוכן המשתמש האקראי שלנו שימושי עבור תרחישי בדיקה רבים, ישנן גישות חלופיות:
-
שירותי בדיקות דפדפן: פלטפורמות כמו BrowserStack, Sauce Labs או LambdaTest מספקות מופעים אמיתיים של דפדפנים לבדיקה במקום רק לדמות את סוכן המשתמש.
-
כלי פיתוח דפדפן: רוב הדפדפנים המודרניים מאפשרים לך להחליף את סוכן המשתמש דרך כלי הפיתוח שלהם, מה שיכול להיות שימושי לבדיקה מהירה.
-
תוספי מחליף סוכן משתמש: תוספי דפדפן המאפשרים לך לעבור בין סוכני משתמש מוגדרים מראש בזמן הגלישה.
-
מכונות וירטואליות או קונטיינרים: הרצת מופעים אמיתיים של מערכות הפעלה ודפדפנים שונים לצורך בדיקות מדויקות ביותר.
-
בדיקות דפדפן חסרות ראש: שימוש בכלים כמו Puppeteer או Selenium לשלוט בתכנות בדפדפנים עם הגדרות סוכן משתמש שונות.
לכל חלופה יש יתרונות משלה ועשויה להיות מתאימה יותר בהתאם לצרכי הבדיקה הספציפיים שלך ומשאבים.
היסטוריה
המושג של מחרוזת סוכן משתמש מתוארך לימים המוקדמים של האינטרנט. המונח "סוכן משתמש" מגיע מהמפרט של HTTP, שבו הוא מתייחס ליישום הלקוח שמבצע בקשה לשרת אינטרנט.
ימים מוקדמים (שנות ה-90)
הדפדפן הראשון בשימוש נרחב, NCSA Mosaic, כלל מחרוזת סוכן משתמש פשוטה שהזדהתה בשם הדפדפן והגרסה. כאשר Netscape Navigator שוחרר, הוא השתמש בפורמט דומה. עם זאת, כאשר שרתי אינטרנט החלו לספק תוכן שונה על סמך הדפדפן, צצה פרקטיקה הידועה בשם "זיהוי דפדפן".
מלחמות הדפדפנים והונאות סוכן משתמש (סוף שנות ה-90)
במהלך מלחמות הדפדפנים בין Netscape ואינטרנט אקספלורר, אתרים לעיתים קרובות סיפקו תוכן מותאם באופן בלעדי לדפדפנים מסוימים. כדי להבטיח תאימות, דפדפנים החלו לכלול מחרוזות שמזוהות עם דפדפנים אחרים. זו הסיבה לכך שרוב הדפדפנים המודרניים כוללים עדיין "Mozilla" במחרוזות סוכן המשתמש שלהם, הפניה לשם הקוד של Netscape Navigator.
מהפכת המובייל (שנות ה-2000-2010)
עליית המכשירים הניידים הציגה מורכבות חדשה למחרוזות סוכן המשתמש. דפדפנים ניידים נדרשו לזהות את עצמם כניידים כדי לקבל תוכן מתאים, מה שהוביל להוספת מזהים של מכשירים וטוקנים ספציפיים לנייד.
אתגרים מודרניים (שנות ה-2010-נוכחי)
כשהמערכת האקולוגית של האינטרנט הפכה מורכבת יותר, מחרוזות סוכן המשתמש הפכו מסובכות יותר ויותר. הן כוללות כעת הפניות למספר מנועי דפדפן (כמו "AppleWebKit" ו"גקו") מסיבות תאימות, גם כאשר מנועים אלה לא בשימוש.
מורכבות זו הובילה לאתגרים בפענוח מדויק של מחרוזות סוכן המשתמש, וכמה קבוצות תקן אינטרנט הציעו לבטל או לפשט את מחרוזות סוכן המשתמש לטובת רמזים לקוח יותר מובנים. עם זאת, מסיבות תאימות לאחור, מחרוזת סוכן המשתמש המסורתית נשארת חלק חיוני בגלישה באינטרנט.
דוגמאות קוד
הנה דוגמאות כיצד לעבוד עם מחרוזות סוכן משתמש בשפות תכנות שונות:
1// JavaScript: זיהוי סוג הדפדפן מתוך סוכן המשתמש
2function detectBrowser() {
3 const userAgent = navigator.userAgent;
4
5 if (userAgent.indexOf("Firefox") > -1) {
6 return "פיירפוקס";
7 } else if (userAgent.indexOf("SamsungBrowser") > -1) {
8 return "דפדפן סמסונג";
9 } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
10 return "אופרה";
11 } else if (userAgent.indexOf("Trident") > -1) {
12 return "אינטרנט אקספלורר";
13 } else if (userAgent.indexOf("Edge") > -1) {
14 return "אדג'";
15 } else if (userAgent.indexOf("Chrome") > -1) {
16 return "כרום";
17 } else if (userAgent.indexOf("Safari") > -1) {
18 return "ספארי";
19 } else {
20 return "לא ידוע";
21 }
22}
23
24// שימוש
25console.log("אתה משתמש ב: " + detectBrowser());
26
1# Python: הגדרת סוכן משתמש מותאם בבקשות
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: זיהוי מכשירים ניידים באמצעות סוכן משתמש
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: יצירת סוכן משתמש אקראי
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: פענוח מחרוזת סוכן משתמש
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#: הגדרת סוכן משתמש ב-HttpClient
2using System;
3using System.Net.Http;
4using System.Threading.Tasks;
5
6class Program
7{
8 static async Task Main()
9 {
10 // צור HttpClient עם סוכן משתמש מותאם
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 // בצע בקשה עם סוכן משתמש מותאם
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 עם סוכני משתמש מותאמים
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 // הגדר סוכן משתמש מותאם
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
תבניות סוכן משתמש נפוצות
הנה כמה דוגמאות של מחרוזות סוכן משתמש אמיתיות עבור דפדפנים ופלטפורמות שונות:
דפדפנים שולחניים
כרום על ווינדוס:
1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
2
פיירפוקס על macOS:
1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
2
ספארי על 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
אדג' על ווינדוס:
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
דפדפנים ניידים
כרום על אנדרואיד:
1Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36
2
ספארי על 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
פיירפוקס על אנדרואיד:
1Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0
2
אינטרנט סמסונג על גלקסי:
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
הפניות
-
"סוכן משתמש." MDN Web Docs, מוזילה, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
-
"מחרוזות סוכן משתמש של דפדפן." WhatIsMyBrowser.com, https://www.whatismybrowser.com/guides/the-latest-user-agent/
-
"כותרת HTTP User-Agent מוסברת." KeyCDN, https://www.keycdn.com/support/user-agent
-
"רמזים לקוח." MDN Web Docs, מוזילה, https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints
-
"היסטוריה של מחרוזת סוכן המשתמש של הדפדפן." WebAIM, https://webaim.org/blog/user-agent-string-history/
-
"זיהוי דפדפן באמצעות סוכן המשתמש." מפתחים של גוגל, https://developer.chrome.com/docs/multidevice/user-agent/
משוב
לחץ על הפיצוץ משוב כדי להתחיל לתת משוב על כלי זה
כלים קשורים
גלה עוד כלים שעשויים להיות שימושיים עבור זרימת העבודה שלך