הפק סוכני משתמש מציאותיים עם אפשרויות לסינון לפי סוג מכשיר, משפחת דפדפן ומערכת הפעלה. מושלם לבדיקות פיתוח אתרים ובדיקות תאימות.
צור מחרוזות סוכן משתמש אקראיות וריאליסטיות לבדיקות פיתוח אתרים.
מחרוזת סוכן משתמש היא מזהה טקסט ספציפי שדפדפנים ואפליקציות אחרות שולחים לאתרים כדי לזהות את עצמם. מחרוזת זו מכילה בדרך כלל מידע על הדפדפן, מערכת ההפעלה, סוג המכשיר ומנוע ההצגה בשימוש. עבור מפתחים ובודקי אתרים, גישה למגוון מחרוזות סוכן משתמש ריאליסטיות היא חיונית לבדיקת תאימות, תגובתיות ופונקציונליות של אתרים על פני פלטפורמות שונות.
כלי מחולל סוכן משתמש אקראי זה יוצר מחרוזות סוכן משתמש שנראות אותנטיות בהתבסס על הפרמטרים הנבחרים שלך. תוכל לסנן לפי סוג מכשיר (שולחני או נייד), משפחת דפדפן (כרום, פיירפוקס, ספארי או אדג') ומערכת הפעלה כדי לייצר סוכני משתמש שמתאימים לדרישות הבדיקה שלך. הכלי מספק ממשק פשוט עם אפשרויות להעתיק את המחרוזת שנוצרה בלחיצה אחת וליצור מחרוזות אקראיות חדשות מיד.
מחרוזות סוכן משתמש עוקבות אחר תבניות ספציפיות בהתאם לדפדפן ולפלטפורמה, אך הן מכילות בדרך כלל מספר רכיבים משותפים:
הנה פיצול של מבני סוכן משתמש טיפוסיים עבור דפדפנים מרכזיים:
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
Macintosh; Intel Mac OS X 10_15_7
X11; Linux x86_64
דוגמאות ניידות:
Linux; Android 12; SM-G998B
iPhone; CPU iPhone OS 15_4 like Mac OS X
סוכני משתמש שולחניים כוללים בדרך כלל מידע ספציפי על מערכת ההפעלה, פרטי ארכיטקטורה (כמו x86_64 או Win64), ולעיתים קרובות העדפות שפה. הם נוטים להיות עקביים יותר בין דפדפנים מאשר סוכני משתמש ניידים.
סוכני משתמש ניידים מכילים מידע על דגם המכשיר, גרסאות מערכות הפעלה ניידות, ולעיתים קרובות כוללים את המילה "נייד" בסוף. ספארי נייד במכשירי iOS יכלול מזהים של "iPhone" או "iPad", בעוד שמכשירי אנדרואיד כוללים את היצרן ומספר הדגם.
כל דפדפן עוקב אחר תבניות גרסה שונות:
יצירת סוכן משתמש אקראי יש לה מספר יישומים חשובים בפיתוח אתרים ובדיקות:
בדיקות תאימות בין דפדפנים: בדוק כיצד האתר שלך מצטלם ופועל על פני דפדפנים שונים מבלי להידרש להתקין מספר דפדפנים או להשתמש במכשירים שונים.
בדיקות עיצוב רספונסיבי: ודא שהאתר שלך מזהה נכון מכשירים ניידים ושולחניים ומספק את הפריסה המתאימה.
אימות זיהוי תכונות: ודא שהמנגנונים לזיהוי תכונות באתר שלך פועלים כראוי עבור יכולות דפדפן שונות.
בדיקות QA ובדיקות אוטומטיות: שלב סוכני משתמש שונים בתסריטי הבדיקה האוטומטית שלך כדי לדמות סביבות משתמש שונות.
בדיקות ביצועים: נתח כיצד האתר שלך מתפקד כאשר הוא ניגש מדפדפנים שונים.
ניפוי בעיות ספציפיות לדפדפן: שחזר ותיקן באגים המתרחשים רק בדפדפנים או גרסאות מסוימות.
בדיקות API: בדוק כיצד ה-API שלך מטפל בבקשות מיישומי לקוח שונים.
בעוד שמחולל סוכן המשתמש האקראי שלנו שימושי עבור תרחישי בדיקה רבים, ישנן גישות חלופיות:
שירותי בדיקות דפדפן: פלטפורמות כמו BrowserStack, Sauce Labs או LambdaTest מספקות מופעים אמיתיים של דפדפנים לבדיקה במקום רק לדמות את סוכן המשתמש.
כלי פיתוח דפדפן: רוב הדפדפנים המודרניים מאפשרים לך להחליף את סוכן המשתמש דרך כלי הפיתוח שלהם, מה שיכול להיות שימושי לבדיקה מהירה.
תוספי מחליף סוכן משתמש: תוספי דפדפן המאפשרים לך לעבור בין סוכני משתמש מוגדרים מראש בזמן הגלישה.
מכונות וירטואליות או קונטיינרים: הרצת מופעים אמיתיים של מערכות הפעלה ודפדפנים שונים לצורך בדיקות מדויקות ביותר.
בדיקות דפדפן חסרות ראש: שימוש בכלים כמו Puppeteer או Selenium לשלוט בתכנות בדפדפנים עם הגדרות סוכן משתמש שונות.
לכל חלופה יש יתרונות משלה ועשויה להיות מתאימה יותר בהתאם לצרכי הבדיקה הספציפיים שלך ומשאבים.
המושג של מחרוזת סוכן משתמש מתוארך לימים המוקדמים של האינטרנט. המונח "סוכן משתמש" מגיע מהמפרט של HTTP, שבו הוא מתייחס ליישום הלקוח שמבצע בקשה לשרת אינטרנט.
הדפדפן הראשון בשימוש נרחב, NCSA Mosaic, כלל מחרוזת סוכן משתמש פשוטה שהזדהתה בשם הדפדפן והגרסה. כאשר Netscape Navigator שוחרר, הוא השתמש בפורמט דומה. עם זאת, כאשר שרתי אינטרנט החלו לספק תוכן שונה על סמך הדפדפן, צצה פרקטיקה הידועה בשם "זיהוי דפדפן".
במהלך מלחמות הדפדפנים בין Netscape ואינטרנט אקספלורר, אתרים לעיתים קרובות סיפקו תוכן מותאם באופן בלעדי לדפדפנים מסוימים. כדי להבטיח תאימות, דפדפנים החלו לכלול מחרוזות שמזוהות עם דפדפנים אחרים. זו הסיבה לכך שרוב הדפדפנים המודרניים כוללים עדיין "Mozilla" במחרוזות סוכן המשתמש שלהם, הפניה לשם הקוד של Netscape Navigator.
עליית המכשירים הניידים הציגה מורכבות חדשה למחרוזות סוכן המשתמש. דפדפנים ניידים נדרשו לזהות את עצמם כניידים כדי לקבל תוכן מתאים, מה שהוביל להוספת מזהים של מכשירים וטוקנים ספציפיים לנייד.
כשהמערכת האקולוגית של האינטרנט הפכה מורכבת יותר, מחרוזות סוכן המשתמש הפכו מסובכות יותר ויותר. הן כוללות כעת הפניות למספר מנועי דפדפן (כמו "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/
גלה עוד כלים שעשויים להיות שימושיים עבור זרימת העבודה שלך