Whiz Tools

بے ترتیب صارف ایجنٹ جنریٹر

ویب ڈویلپمنٹ کی جانچ کے لئے بے ترتیب، حقیقت پسندانہ براؤزر صارف ایجنٹ سٹرنگز تیار کریں۔

جنریٹ کردہ صارف ایجنٹ

کاپی کریں

بے ترتیب صارف ایجنٹ جنریٹر

تعارف

ایک صارف ایجنٹ سٹرنگ ایک مخصوص متنی شناخت کنندہ ہے جو ویب براؤزر اور دیگر ایپلیکیشنز ویب سائٹس کو اپنی شناخت کرنے کے لیے بھیجتے ہیں۔ یہ سٹرنگ عام طور پر براؤزر، آپریٹنگ سسٹم، ڈیوائس کی قسم، اور استعمال ہونے والے رینڈرنگ انجن کے بارے میں معلومات پر مشتمل ہوتی ہے۔ ویب ڈویلپرز اور ٹیسٹرز کے لیے مختلف حقیقی صارف ایجنٹ سٹرنگز تک رسائی حاصل کرنا ضروری ہے تاکہ وہ ویب سائٹ کی مطابقت، جوابدہی، اور مختلف پلیٹ فارمز میں فعالیت کا ٹیسٹ کر سکیں۔

یہ بے ترتیب صارف ایجنٹ جنریٹر ٹول آپ کے منتخب کردہ پیرامیٹرز کی بنیاد پر حقیقی نظر آنے والی صارف ایجنٹ سٹرنگز تیار کرتا ہے۔ آپ ڈیوائس کی قسم (ڈیسک ٹاپ یا موبائل)، براؤزر فیملی (کروم، فائر فاکس، سفاری، یا ایج)، اور آپریٹنگ سسٹم کے لحاظ سے فلٹر کر سکتے ہیں تاکہ ایسے صارف ایجنٹ تیار کیے جا سکیں جو آپ کی جانچ کی ضروریات سے میل کھاتے ہوں۔ یہ ٹول ایک سادہ انٹرفیس فراہم کرتا ہے جس میں تیار کردہ سٹرنگ کو ایک کلک میں کاپی کرنے اور فوری طور پر نئی بے ترتیب سٹرنگز تیار کرنے کے اختیارات شامل ہیں۔

صارف ایجنٹ کا ڈھانچہ

صارف ایجنٹ سٹرنگز مخصوص پیٹرن کی پیروی کرتی ہیں جو براؤزر اور پلیٹ فارم کے لحاظ سے مختلف ہوتی ہیں، لیکن عام طور پر ان میں کئی عام اجزاء شامل ہوتے ہیں:

  1. براؤزر شناخت کنندہ: عام طور پر تاریخی مطابقت کی وجوہات کی بنا پر "Mozilla/5.0" سے شروع ہوتا ہے
  2. پلیٹ فارم/او ایس کی معلومات: آپریٹنگ سسٹم کی تفصیلات (ونڈوز، میک او ایس، اینڈرائیڈ، آئی او ایس)
  3. براؤزر انجن: رینڈرنگ انجن (جیسے Gecko، WebKit، یا Blink)
  4. براؤزر کی تفصیلات: مخصوص براؤزر کا نام اور ورژن

یہاں بڑے براؤزرز کے لیے عام صارف ایجنٹ کے ڈھانچے کی تفصیل دی گئی ہے:

کروم

Mozilla/5.0 (platform; details) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/version Safari/537.36

فائر فاکس

Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion

سفاری

Mozilla/5.0 (platform) AppleWebKit/webkitversion (KHTML, like Gecko) Version/safariversion Safari/safariversion

ایج

Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/chromiumversion Safari/537.36 Edg/edgeversion

پلیٹ فارم کا حصہ ڈیسک ٹاپ اور موبائل ڈیوائسز کے درمیان نمایاں طور پر مختلف ہوتا ہے:

ڈیسک ٹاپ کی مثالیں:

  • ونڈوز: 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)، اور بعض اوقات زبان کی ترجیحات شامل کرتے ہیں۔ وہ عام طور پر براؤزرز کے درمیان موبائل صارف ایجنٹس کی نسبت زیادہ مستقل ہوتے ہیں۔

موبائل صارف ایجنٹس

موبائل صارف ایجنٹس میں ڈیوائس ماڈل کی معلومات، موبائل آپریٹنگ سسٹم کے ورژن، اور اکثر آخر میں "موبائل" کا لفظ شامل ہوتا ہے۔ آئی او ایس ڈیوائسز پر موبائل سفاری "آئی فون" یا "آئی پیڈ" شناخت کنندگان شامل کرے گا، جبکہ اینڈرائیڈ ڈیوائسز میں تیار کنندہ اور ماڈل نمبر شامل ہوتے ہیں۔

براؤزر ورژن کے پیٹرن

ہر براؤزر مختلف ورژننگ پیٹرن کی پیروی کرتا ہے:

  • کروم: چار حصوں والے ورژن نمبر استعمال کرتا ہے (جیسے 96.0.4664.110)
  • فائر فاکس: عام طور پر دو یا تین حصوں والے ورژن نمبر استعمال کرتا ہے (جیسے 95.0 یا 95.0.2)
  • سفاری: سادہ ورژن نمبروں کا استعمال کرتا ہے جیسے 15.2
  • ایج: ورژن نمبر کروم کی طرح استعمال کرتا ہے لیکن اپنے ایج ورژن کے ساتھ (جیسے 96.0.1054.62)

استعمال کے کیسز

بے ترتیب صارف ایجنٹ کی پیداوار کے کئی اہم اطلاقات ہیں جو ویب ڈویلپمنٹ اور ٹیسٹنگ میں ہیں:

  1. کراس براؤزر مطابقت کی جانچ: یہ ٹیسٹ کریں کہ آپ کی ویب سائٹ مختلف براؤزرز میں کیسے ظاہر ہوتی ہے اور کام کرتی ہے بغیر متعدد براؤزرز کو انسٹال کیے یا متعدد ڈیوائسز کا استعمال کیے۔

  2. جوابدہ ڈیزائن کی جانچ: یہ تصدیق کریں کہ آپ کی ویب سائٹ درست طور پر موبائل اور ڈیسک ٹاپ ڈیوائسز کا پتہ لگاتی ہے اور مناسب ترتیب پیش کرتی ہے۔

  3. خصوصیت کی شناخت کی توثیق: یہ یقینی بنائیں کہ آپ کی ویب سائٹ کی خصوصیت کی شناخت کے طریقے مختلف براؤزر کی صلاحیتوں کے لیے درست طور پر کام کرتے ہیں۔

  4. کیو اے اور خودکار ٹیسٹنگ: اپنے خودکار ٹیسٹنگ اسکرپٹس میں مختلف صارف ایجنٹس کو شامل کریں تاکہ مختلف صارف کے ماحول کی نقل کی جا سکے۔

  5. کارکردگی کی جانچ: یہ تجزیہ کریں کہ آپ کی ویب سائٹ مختلف براؤزر کے ماحول سے رسائی پر کیسے کارکردگی دکھاتی ہے۔

  6. براؤزر مخصوص مسائل کی خرابی: ان کی دوبارہ پیدا کریں اور ٹھیک کریں جو صرف مخصوص براؤزرز یا ورژن میں پیش آتے ہیں۔

  7. ای پی آئی کی جانچ: یہ جانچیں کہ آپ کا ای پی آئی مختلف کلائنٹ ایپلیکیشنز سے درخواستوں کا کیسے ہینڈل کرتا ہے۔

متبادل

اگرچہ ہمارا بے ترتیب صارف ایجنٹ جنریٹر بہت سے ٹیسٹنگ منظرناموں کے لیے مفید ہے، لیکن کچھ متبادل طریقے بھی ہیں:

  1. براؤزر ٹیسٹنگ خدمات: BrowserStack، Sauce Labs، یا LambdaTest جیسے پلیٹ فارم ٹیسٹنگ کے لیے حقیقی براؤزر کے انسٹینس فراہم کرتے ہیں نہ کہ صرف صارف ایجنٹ کی نقل۔

  2. براؤزر ڈویلپر ٹولز: زیادہ تر جدید براؤزرز آپ کو اپنے ڈویلپر ٹولز کے ذریعے صارف ایجنٹ کو اوور رائیڈ کرنے کی اجازت دیتے ہیں، جو فوری ٹیسٹ کے لیے مفید ہو سکتا ہے۔

  3. صارف ایجنٹ سوئچر ایکسٹینشنز: براؤزر کی توسیعات جو آپ کو براؤزنگ کے دوران پہلے سے طے شدہ صارف ایجنٹس کے درمیان سوئچ کرنے کی اجازت دیتی ہیں۔

  4. ورچوئل مشینیں یا کنٹینرز: مختلف آپریٹنگ سسٹمز اور براؤزرز کے حقیقی انسٹینسز چلانا تاکہ سب سے درست ٹیسٹنگ کی جا سکے۔

  5. ہیڈلیس براؤزر ٹیسٹنگ: Puppeteer یا Selenium جیسے ٹولز کا استعمال کرنا تاکہ مختلف صارف ایجنٹ کی ترتیبات کے ساتھ براؤزرز کو پروگرام کے ذریعے کنٹرول کیا جا سکے۔

ہر متبادل کے اپنے فوائد ہیں اور آپ کی مخصوص ٹیسٹنگ کی ضروریات اور وسائل کے لحاظ سے زیادہ موزوں ہو سکتے ہیں۔

تاریخ

صارف ایجنٹ سٹرنگ کا تصور عالمی ویب کے ابتدائی دنوں سے ہی موجود ہے۔ "صارف ایجنٹ" کی اصطلاح HTTP وضاحت سے آئی ہے، جہاں یہ اس کلائنٹ ایپلیکیشن کا حوالہ دیتی ہے جو ویب سرور کو درخواست کرتی ہے۔

ابتدائی دن (1990 کی دہائی)

پہلا وسیع پیمانے پر استعمال ہونے والا براؤزر، NCSA Mosaic، میں ایک سادہ صارف ایجنٹ سٹرنگ شامل تھی جو براؤزر کے نام اور ورژن کی شناخت کرتی تھی۔ جب Netscape Navigator جاری ہوا تو اس نے ایک مشابہ شکل استعمال کی۔ تاہم، جب ویب سرورز نے مخصوص براؤزرز کی بنیاد پر مختلف مواد فراہم کرنا شروع کیا تو "براؤزر سنفٹنگ" کے نام سے جانے جانے والے طریقے کا آغاز ہوا۔

براؤزر کی جنگیں اور صارف ایجنٹ کی نقل (1990 کی دہائی کے آخر)

Netscape اور Internet Explorer کے درمیان براؤزر کی جنگوں کے دوران، ویب سائٹس اکثر مخصوص براؤزرز کے لیے خصوصی طور پر بہتر کردہ مواد فراہم کرتی تھیں۔ مطابقت کو یقینی بنانے کے لیے، براؤزرز نے خود کو دوسرے براؤزرز کے طور پر شناخت کرنے والی سٹرنگز شامل کرنا شروع کر دیں۔ یہی وجہ ہے کہ زیادہ تر جدید براؤزرز اب بھی اپنے صارف ایجنٹ سٹرنگز میں "Mozilla" شامل کرتے ہیں، جو Netscape Navigator کے کوڈ نام کا حوالہ ہے۔

موبائل انقلاب (2000 کی دہائی-2010 کی دہائی)

موبائل ڈیوائسز کے عروج نے صارف ایجنٹ سٹرنگز میں نئی پیچیدگی متعارف کرائی۔ موبائل براؤزرز کو مناسب مواد حاصل کرنے کے لیے اپنے آپ کو موبائل کے طور پر شناخت کرنے کی ضرورت تھی، جس کی وجہ سے ڈیوائس کی شناخت اور موبائل مخصوص ٹوکنز کا اضافہ ہوا۔

جدید چیلنجز (2010 کی دہائی-موجودہ)

جبکہ ویب کا ماحولیاتی نظام مزید پیچیدہ ہو گیا ہے، صارف ایجنٹ سٹرنگز زیادہ پیچیدہ ہو گئی ہیں۔ اب ان میں متعدد براؤزر انجن (جیسے "AppleWebKit" اور "Gecko") کا حوالہ شامل ہے تاکہ مطابقت کی وجوہات کے لیے، حالانکہ وہ انجن دراصل استعمال نہیں ہو رہے ہیں۔

اس پیچیدگی نے صارف ایجنٹ سٹرنگز کو درست طریقے سے تجزیہ کرنے میں چیلنجز پیدا کیے ہیں، اور کچھ ویب معیاری گروپوں نے صارف ایجنٹ سٹرنگز کو ختم کرنے یا سادہ بنانے کی تجویز پیش کی ہے تاکہ مزید ساختی کلائنٹ اشارے کی طرف بڑھا جا سکے۔ تاہم، پچھلے مطابقت کی وجوہات کی بنا پر، روایتی صارف ایجنٹ سٹرنگ ویب براؤزنگ کا ایک لازمی حصہ بنی ہوئی ہے۔

کوڈ کی مثالیں

یہاں مختلف پروگرامنگ زبانوں میں صارف ایجنٹ سٹرنگز کے ساتھ کام کرنے کے طریقے کی مثالیں ہیں:

// جاوا اسکرپٹ: صارف ایجنٹ سے براؤزر کی قسم کا پتہ لگانا
function detectBrowser() {
  const userAgent = navigator.userAgent;
  
  if (userAgent.indexOf("Firefox") > -1) {
    return "Firefox";
  } else if (userAgent.indexOf("SamsungBrowser") > -1) {
    return "Samsung Browser";
  } else if (userAgent.indexOf("Opera") > -1 || userAgent.indexOf("OPR") > -1) {
    return "Opera";
  } else if (userAgent.indexOf("Trident") > -1) {
    return "Internet Explorer";
  } else if (userAgent.indexOf("Edge") > -1) {
    return "Edge";
  } else if (userAgent.indexOf("Chrome") > -1) {
    return "Chrome";
  } else if (userAgent.indexOf("Safari") > -1) {
    return "Safari";
  } else {
    return "Unknown";
  }
}

// استعمال
console.log("آپ استعمال کر رہے ہیں: " + detectBrowser());
# پائتھن: درخواستوں میں حسب ضرورت صارف ایجنٹ مرتب کرنا
import requests

def fetch_with_user_agent(url, user_agent):
    headers = {
        'User-Agent': user_agent
    }
    response = requests.get(url, headers=headers)
    return response.text

# مثال استعمال
chrome_ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
content = fetch_with_user_agent('https://example.com', chrome_ua)
print(content[:100])  # جواب کے پہلے 100 کردار پرنٹ کریں
<?php
// پی ایچ پی: صارف ایجنٹ کا پتہ لگانا
function isMobileDevice() {
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    $mobileKeywords = array('Mobile', 'Android', 'iPhone', 'iPad', 'Windows Phone');
    
    foreach ($mobileKeywords as $keyword) {
        if (stripos($userAgent, $keyword) !== false) {
            return true;
        }
    }
    return false;
}

// استعمال
if (isMobileDevice()) {
    echo "آپ ایک موبائل ڈیوائس استعمال کر رہے ہیں۔";
} else {
    echo "آپ ایک ڈیسک ٹاپ ڈیوائس استعمال کر رہے ہیں۔";
}
?>
// جاوا: بے ترتیب صارف ایجنٹ تیار کرنا
import java.util.Random;

public class UserAgentGenerator {
    private static final String[] CHROME_VERSIONS = {"96.0.4664.110", "95.0.4638.69", "94.0.4606.81"};
    private static final String[] OS_VERSIONS = {"Windows NT 10.0; Win64; x64", 
                                               "Macintosh; Intel Mac OS X 10_15_7",
                                               "X11; Linux x86_64"};
    
    public static String generateRandomChromeUserAgent() {
        Random random = new Random();
        String osVersion = OS_VERSIONS[random.nextInt(OS_VERSIONS.length)];
        String chromeVersion = CHROME_VERSIONS[random.nextInt(CHROME_VERSIONS.length)];
        
        return "Mozilla/5.0 (" + osVersion + ") AppleWebKit/537.36 (KHTML, like Gecko) " +
               "Chrome/" + chromeVersion + " Safari/537.36";
    }
    
    public static void main(String[] args) {
        System.out.println(generateRandomChromeUserAgent());
    }
}
# روبی: صارف ایجنٹ سٹرنگ کو پارس کرنا
require 'user_agent_parser'

def parse_user_agent(user_agent_string)
  parser = UserAgentParser::Parser.new
  client = parser.parse(user_agent_string)
  
  {
    browser_name: client.family,
    browser_version: client.version.to_s,
    os_name: client.os.family,
    os_version: client.os.version.to_s,
    device: client.device.family
  }
end

# مثال استعمال
ua = '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'
info = parse_user_agent(ua)
puts info
// سی#: HttpClient میں صارف ایجنٹ مرتب کرنا
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // حسب ضرورت صارف ایجنٹ کے ساتھ HttpClient بنائیں
        using (var httpClient = new HttpClient())
        {
            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";
            httpClient.DefaultRequestHeaders.UserAgent.ParseAdd(userAgent);
            
            try
            {
                // حسب ضرورت صارف ایجنٹ کے ساتھ درخواست کریں
                HttpResponseMessage response = await httpClient.GetAsync("https://example.com");
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();
                
                Console.WriteLine($"جواب موصول ہوا جس کا درجہ حرارت: {response.StatusCode}");
                Console.WriteLine(responseBody.Substring(0, 100) + "..."); // پہلے 100 کردار
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine($"درخواست کی خرابی: {e.Message}");
            }
        }
    }
}
// گو: حسب ضرورت صارف ایجنٹس کے ساتھ HTTP درخواستیں بنانا
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    // ایک نئی درخواست بنائیں
    req, err := http.NewRequest("GET", "https://example.com", nil)
    if err != nil {
        fmt.Printf("درخواست بناتے وقت خرابی: %s\n", err)
        return
    }
    
    // حسب ضرورت صارف ایجنٹ مرتب کریں
    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")
    
    // درخواست بھیجیں
    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        fmt.Printf("درخواست بھیجتے وقت خرابی: %s\n", err)
        return
    }
    defer resp.Body.Close()
    
    // جواب پڑھیں
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Printf("جواب پڑھتے وقت خرابی: %s\n", err)
        return
    }
    
    fmt.Printf("جواب کا درجہ حرارت: %s\n", resp.Status)
    fmt.Printf("جواب کے جسم کا پیش نظارہ: %s\n", body[:100])
}

عام صارف ایجنٹ کے پیٹرن

یہاں مختلف براؤزرز اور پلیٹ فارمز کے لیے حقیقی صارف ایجنٹ سٹرنگز کی کچھ مثالیں ہیں:

ڈیسک ٹاپ براؤزرز

کروم ونڈوز پر:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

فائر فاکس میک او ایس پر:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0

سفاری میک او ایس پر:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

ایج ونڈوز پر:

Mozilla/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

موبائل براؤزرز

کروم اینڈرائیڈ پر:

Mozilla/5.0 (Linux; Android 12; SM-G998B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36

سفاری آئی فون پر:

Mozilla/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

فائر فاکس اینڈرائیڈ پر:

Mozilla/5.0 (Android 12; Mobile; rv:95.0) Gecko/95.0 Firefox/95.0

گلیکسی پر سام سنگ انٹرنیٹ:

Mozilla/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

حوالہ جات

  1. "صارف ایجنٹ۔" MDN ویب دستاویزات، موزیلا، https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent

  2. "براؤزر صارف ایجنٹ سٹرنگز۔" WhatIsMyBrowser.com، https://www.whatismybrowser.com/guides/the-latest-user-agent/

  3. "HTTP صارف ایجنٹ ہیڈر کی وضاحت۔" KeyCDN، https://www.keycdn.com/support/user-agent

  4. "کلائنٹ اشارے۔" MDN ویب دستاویزات، موزیلا، https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints

  5. "صارف ایجنٹ سٹرنگ کی تاریخ۔" WebAIM، https://webaim.org/blog/user-agent-string-history/

  6. "صارف ایجنٹ کے ساتھ براؤزر کی شناخت۔" گوگل ڈویلپرز، https://developer.chrome.com/docs/multidevice/user-agent/

رائے