আপনি কিভাবে একটি ব্রাউজারের সংস্করণ সনাক্ত করতে পারেন?


287

আমি কোডটির আশেপাশে অনুসন্ধান করে যাচ্ছি যে ওয়েবসাইটটি ভিজিটর ব্যবহারকারীর ফায়ারফক্স 3 বা 4 রয়েছে কিনা তা আমাকে সনাক্ত করতে পারে I আমি যা খুঁজে পেয়েছি তার সমস্তই ব্রাউজারের ধরণ সনাক্ত করার কোড যা সংস্করণ নয়।

আমি কীভাবে এটির মতো একটি ব্রাউজারের সংস্করণ সনাক্ত করতে পারি?


6
আমি ছোট খণ্ড কোডের পরিবর্তে একটি প্রমাণিত লাইব্রেরিতে সেটআপ করার পরামর্শ দিচ্ছি: * github.com/bestiejs/platform.js * github.com/ded/bowser উভয়ই> 1,000 তারকা রয়েছে
সাইমন ফকির

ব্রাউজার এবং এর সংস্করণ সনাক্ত করতে আপনি ইউএপারসার জাভাস্ক্রিপ্ট লাইব্রেরি ব্যবহার করতে পারেন। আমি জাভাস্ক্রিপ্ট ব্যবহার করে কীভাবে ব্রাউজার, ইঞ্জিন, ওএস, সিপিইউ এবং ডিভাইস সনাক্ত করব?
লুজান বড়াল 23'18

উত্তর:


504

আপনি ব্রাউজার কী বলে তা দেখতে পাচ্ছেন এবং একাধিক ব্রাউজার লগিং বা পরীক্ষার জন্য সেই তথ্যটি ব্যবহার করতে পারেন।

navigator.sayswho= (function(){
    var ua= navigator.userAgent, tem, 
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    if(M[1]=== 'Chrome'){
        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
    }
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
    return M.join(' ');
})();

console.log(navigator.sayswho); // outputs: `Chrome 62`


2
মজিলা / ৪.০ (সামঞ্জস্যপূর্ণ; এমএসআইই 7.০; উইন্ডোজ এনটি .1.১; ডাব্লুডব্লিউ ;৪; ট্রিটেন্ট / .0.০; এসএলসিসি ২;। নেট সিএলআর ২.০.50০২72;। নেট সিএলআর ৩.০.৩০7৯;। নেট সিএলআর 3.0.30729; মিডিয়া সেন্টার পিসি 6.0; তথ্যপথ 3;। নেট 4.0 সি;। নেট 4.0 ই) এর আই 77 ত্রিশূল / 6.0 এর সাথে স্ট্রিং থেকে সাবধান থাকুন
যোগেশ

২ য় থেকে শেষ লাইনের M[1] = tem[1]চেয়ে বেশি হওয়া উচিত নয় M[2]? কোডটি বর্তমানে যেমন দাঁড়িয়ে আছে, অপেরা 12.14 ব্যবহারকারীর এজেন্ট স্ট্রিং Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14ফলাফল প্রদান করে Opera 9.80 12.14। আইএমও, সঠিক ফলাফলটি হবে Opera 12.14যা আমার পরামর্শ অনুসারে সম্পন্ন হবে।
কর্ক ওল

58
যদি এই উত্তরে আউটপুট উদাহরণ অন্তর্ভুক্ত থাকে তবে এটি সহায়ক হবে। ফাংশন থেকে কী স্ট্রিংগুলি আশা করা যায় তা আমি বলতে পারি না।
পাঁচডোগিট

tem = ua.match(/\b(OPR|Edge)\/(\d+)/i); if (tem != null) return {name : tem[1] === 'OPR' ? 'Opera' : tem[1], version : tem[2]};
এজটির

6
এই স্ক্রিপ্টটি অভ্যন্তরীণ ফেসবুক ব্রাউজারের জন্য ব্রাউজার ক্রোম সংস্করণ 4.0 টি ভুলভাবে রিপোর্ট করেছে (যখন আপনি অ্যান্ড্রয়েডে ফেসবুক অ্যাপের মধ্যে ওয়েব লিঙ্কগুলি ক্লিক করেন তখন চালু করা হয়)। ইউজারজেন্ট স্ট্রিংটি দেখতে এমন কিছু দেখাচ্ছে: Mozilla/5.0 (Linux; Android 5.0; Nexus 9 Build/LRX21R; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.95 Safari/537.36 [FB_IAB/FB4A;FBAV/50.0.0.10.54;]দুর্ভাগ্যক্রমে এটি অত্যন্ত বিশিষ্ট ব্যবহারকারী এজেন্ট তাই সত্যিই এটিকে উপেক্ষা করতে পারবেন না ...
উইলস্টার

205

কেনেবেকের উত্তরে এটি একটি উন্নতি।

function get_browser() {
    var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 
    if(/trident/i.test(M[1])){
        tem=/\brv[ :]+(\d+)/g.exec(ua) || []; 
        return {name:'IE',version:(tem[1]||'')};
        }   
    if(M[1]==='Chrome'){
        tem=ua.match(/\bOPR|Edge\/(\d+)/)
        if(tem!=null)   {return {name:'Opera', version:tem[1]};}
        }   
    M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
    return {
      name: M[0],
      version: M[1]
    };
 }

var browser=get_browser(); // browser.name = 'Chrome'
                           // browser.version = '40'

console.log(browser);

এইভাবে আপনি কোডের অস্পষ্টতা থেকে নিজেকে রক্ষা করতে পারেন।


(কিছু প্ল্যাটফর্ম - উদাহরণস্বরূপ ওএস এক্স - নেভিগেটর.উসার এজেন্টের জন্য আলাদা আউটপুট দেবে এবং আপনি 'অপেরা' স্ট্রিংয়ের সাহায্যে অপেরা ব্রাউজারটি সনাক্ত করতে পারবেন না পরিবর্তে 'ওপিআর' দিয়ে)।
ট্রেইনোসিস

get_browser এবং get_browser_version ভুল যদি 'ত্রিশূল' এবং 'যদি ক্রোম' শর্তসাপেক্ষে তেমন হয় তার ভিতরে ভুল বিবরণ দেয়! = নাল
পিক্সেলথ

54

এটি কেনেবেকের (কে) উত্তরটি হারম্যান ইঙ্গজালডসনের (এইচ) উত্তরের সাথে সংযুক্ত করে:

  • মূল উত্তরের ন্যূনতম কোড বজায় রাখে। (কে)
  • মাইক্রোসফ্ট এজ (কে) এর সাথে কাজ করে
  • নতুন ভেরিয়েবল / অবজেক্ট তৈরির পরিবর্তে নেভিগেটর অবজেক্টকে প্রসারিত করে। (কে)
  • ব্রাউজার সংস্করণ এবং নামটিকে পৃথক শিশু অবজেক্টগুলিতে পৃথক করে। (এইচ)

 

navigator.browserSpecs = (function(){
    var ua = navigator.userAgent, tem, 
        M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return {name:'IE',version:(tem[1] || '')};
    }
    if(M[1]=== 'Chrome'){
        tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem != null) return {name:tem[1].replace('OPR', 'Opera'),version:tem[2]};
    }
    M = M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem = ua.match(/version\/(\d+)/i))!= null)
        M.splice(1, 1, tem[1]);
    return {name:M[0], version:M[1]};
})();

console.log(navigator.browserSpecs); //Object { name: "Firefox", version: "42" }

if (navigator.browserSpecs.name == 'Firefox') {
    // Do something for Firefox.
    if (navigator.browserSpecs.version > 42) {
        // Do something for Firefox versions greater than 42.
    }
}
else {
    // Do something for all other browsers.
}

45

এখানে বেশ কয়েকটি বিশিষ্ট গ্রন্থাগার রয়েছে যা মে 2019 পর্যন্ত ব্রাউজার সনাক্তকরণ পরিচালনা করে।

Bowser lancedikson দ্বারা - 3,761 ★ এস - সর্বশেষ আপডেট হয়েছে মে 26, 2019 - 4.8KB

var result = bowser.getParser(window.navigator.userAgent);
console.log(result);
document.write("You are using " + result.parsedResult.browser.name +
               " v" + result.parsedResult.browser.version + 
               " on " + result.parsedResult.os.name);
<script src="https://unpkg.com/bowser@2.4.0/es5.js"></script>

* ক্রোমিয়ামের উপর ভিত্তি করে এজ সমর্থন করে


প্ল্যাটফর্ম.জেগুলি বাইটিটিজ দ্বারা - 2,250 ★ গুলি - সর্বশেষ আপডেট হয়েছে 30 অক্টোবর, 2018 - 5.9 কেবি

console.log(platform);
document.write("You are using " + platform.name +
               " v" + platform.version + 
               " on " + platform.os);
<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.5/platform.min.js"></script>

গ্যাবসিবি দ্বারা jQuery ব্রাউজার - 504 ★ গুলি - সর্বশেষ আপডেট 23 নভেম্বর, 2015 - 1.3 কেবি

console.log($.browser)
document.write("You are using " + $.browser.name +
               " v" + $.browser.versionNumber + 
               " on " + $.browser.platform);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script>

Darcyclarke - 522 ★ s - দ্বারা সর্বশেষ আপডেট হয়েছে 26 অক্টোবর, 2015 - 2.9 কেবি

var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
               " v" + result.browser.version + 
               " on " + result.os.family);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Detect.js/2.2.2/detect.min.js"></script>

কুইর্কসমোড দ্বারা ব্রাউজার সনাক্তকরণ (সংরক্ষণাগারভুক্ত) - সর্বশেষ আপডেট হয়েছে 14 নভেম্বর, 2013 - 884 বি

console.log(BrowserDetect)
document.write("You are using " + BrowserDetect.browser +
               " v" + BrowserDetect.version + 
               " on " + BrowserDetect.OS);
<script src="https://kylemit.github.io/libraries/libraries/BrowserDetect.js"></script>


উল্লেখযোগ্য উল্লেখ:

  • হোয়াট ব্রাউজার - 1,355 ★ গুলি - সর্বশেষ আপডেট 2 অক্টোবর, 2018
  • Modernizr - 23.397 ★ এস - সর্বশেষ আপডেট হয়েছে জানুয়ারী 12, 2019 - একটি ফেড ঘোড়া খাবার যোগাতে, বৈশিষ্ট্য সনাক্তকরণ কোনো চালনা করা উচিত canIuse শৈলী প্রশ্ন। ব্রাউজার সনাক্তকরণটি কেবলমাত্র স্বনির্ধারিত চিত্র সরবরাহ করার জন্য, ফাইলগুলি ডাউনলোড করতে বা পৃথক ব্রাউজারগুলির জন্য নির্দেশাবলীর জন্য।

আরও পড়া


29

Bowser JavaScript লাইব্রেরি এই কার্যকারিতা উপলব্ধ করা হয়।

if (bowser.msie && bowser.version <= 6) {
  alert('Hello China');
}

এটি ভালভাবে বজায় রয়েছে বলে মনে হয়।


18

এটি ব্যবহার করুন: http://www.quirksmode.org/js/detect.html

alert(BrowserDetect.browser); // will say "Firefox"
alert(BrowserDetect.version); // will say "3" or "4"

7
পুরানো রেফারেন্স, আর সমর্থিত নয় - "এই পৃষ্ঠায় আমার নিজের ব্রাউজারটি সনাক্ত করতে স্ক্রিপ্ট রয়েছে, তবে আমি দেখতে পেয়েছি যে আমার এটিকে টু ডেট রাখার জন্য পর্যাপ্ত সময় নেই Therefore তাই আমি এটিকে সরিয়েছি।"
নিওলিস্ক

16

আমি নিজের জন্য একটি সমাধান খুঁজছিলাম, যেহেতু jQuery 1.9.1 এবং তার থেকে বেশি $.browserকার্যকারিতা সরিয়ে দিয়েছে । আমি এই ছোট ফাংশনটি নিয়ে এসেছি যা আমার পক্ষে কাজ করে। এটি কোন ব্রাউজার কিনা তা পরীক্ষা করার জন্য এটির বিশ্বব্যাপী পরিবর্তনশীল (আমি আমার _ ব্রাউজার বলেছি) প্রয়োজন। এটি কীভাবে ব্যবহার করা যায় তা চিত্রিত করার জন্য আমি একটি জিসফিল লিখেছি , অবশ্যই _ ব্রাউজার.ফু এর জন্য পরীক্ষা যোগ করে অন্য ব্রাউজারগুলির জন্য এটি প্রসারিত করা যেতে পারে, যেখানে ফু ব্রাউজারটির নাম। আমি কেবল জনপ্রিয়গুলি করেছি।

detectBrowser ()

_browser = {};

function detectBrowser() {
  var uagent = navigator.userAgent.toLowerCase(),
      match = '';

  _browser.chrome  = /webkit/.test(uagent)  && /chrome/.test(uagent)      &&
                     !/edge/.test(uagent);

  _browser.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent);

  _browser.msie    = /msie/.test(uagent)    || /trident/.test(uagent)     ||
                     /edge/.test(uagent);

  _browser.safari  = /safari/.test(uagent)  && /applewebkit/.test(uagent) &&
                     !/chrome/.test(uagent);

  _browser.opr     = /mozilla/.test(uagent) && /applewebkit/.test(uagent) &&
                     /chrome/.test(uagent)  && /safari/.test(uagent)      &&
                     /opr/.test(uagent);

  _browser.version = '';

  for (x in _browser) {
    if (_browser[x]) {

      match = uagent.match(
                new RegExp("(" + (x === "msie" ? "msie|edge" : x) + ")( |\/)([0-9]+)")
              );

      if (match) {
        _browser.version = match[3];
      } else {
        match = uagent.match(new RegExp("rv:([0-9]+)"));
        _browser.version = match ? match[1] : "";
      }
      break;
    }
  }
  _browser.opera = _browser.opr;
  delete _browser.opr;
}

বর্তমান ব্রাউজারটি অপেরা কিনা তা পরীক্ষা করতে আপনি করতে পারেন

if (_browser.opera) { // Opera specific code }

সম্পাদনা ফর্ম্যাটিং স্থির করে, আইই 11 এবং অপেরা / ক্রোমের সনাক্তকরণ স্থির করে ফলাফল থেকে ব্রাউজারে পরিবর্তন হয়েছে ult এখন _browserকীগুলির ক্রমটি কোনও ব্যাপার নয়। JsFizz লিঙ্ক আপডেট হয়েছে ।

2015/08/11 সম্পাদনা ইন্টারনেট এক্সপ্লোরার 12 (EDGE) এর জন্য নতুন টেস্টকেস যুক্ত করেছে, একটি ছোট রেজিপ্স্প সমস্যা স্থির করেছে। JsFizz লিঙ্ক আপডেট হয়েছে ।


1
উইন্ডোজ 10-এ নতুন আই এজ (ওরফে স্পার্টান) এর জন্য এটি দেখায় যে আমার ব্রাউজারটি ক্রোম 42 --- ইউজার এজেন্ট স্ট্রিং: মোজিলা / 5.0 (উইন্ডোজ এনটি 10.0; উইন 64; x64) আপেলওয়েবকিট / 537.36 (কেএইচটিএমএল, গেকোর মতো) ক্রোম / 42.0 .2311.135 সাফারি / 537.36 প্রান্ত / 12.10240 ব্রাউজারটি ক্রোম 42
রুলিস্প

1
আপনার মন্তব্য এবং বিন্যাসের নমুনা সরবরাহ করার জন্য @ রুলিসপকে ধন্যবাদ, যেহেতু আমার কাছে এজ বা উইন 10 নেই। এটি থেকে কেবল আমি jsFizz এ কোডটি আপডেট করেছি যা প্রতিফলিত করতে। আপনি যদি নমুনা ইউজেন্টের সাথে পরীক্ষা করতে চান তবে আপনি আমাকে এই ফ্রিডলটিতে যান । কিছু ভুল আছে কিনা আমাকে জানাবেন।
ড্যানাইল গাবেনস্কি

13
function BrowserCheck()
{
    var N= navigator.appName, ua= navigator.userAgent, tem;
    var M= ua.match(/(opera|chrome|safari|firefox|msie|trident)\/?\s*(\.?\d+(\.\d+)*)/i);
    if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) {M[2]=tem[1];}
    M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
    return M;
}

এটি একটি অ্যারে ফিরিয়ে দেবে, প্রথম উপাদানটি ব্রাউজারের নাম, দ্বিতীয় উপাদানটি স্ট্রিং বিন্যাসে সম্পূর্ণ সংস্করণ নম্বর।


9

jQuery এটি বেশ সুন্দর পরিচালনা করতে পারে ( jQuery.browser )

var ua = $.browser;
if ( ua.mozilla && ua.version.slice(0,3) == "1.9" ) {
    alert( "Do stuff for firefox 3" );
}

সম্পাদনা: যেমন জোশুয়া নীচে তার মন্তব্যে লিখেছেন, jQuery.browser সম্পত্তিটি আর সংস্করণ 1.9 থেকে jQuery তে সমর্থিত নয় ( আরও তথ্যের জন্য jQuery 1.9 রিলিজ নোট পড়ুন )। jQuery ডেভলপমেন্ট টিম মডার্নিজর লাইব্রেরির সাথে ইউআই মানিয়ে নেওয়ার মতো আরও সম্পূর্ণ পদ্ধতির ব্যবহার করার পরামর্শ দেয়


16
jQuery 1.9 ব্রাউজার সমর্থন has। ব্রাউজারটি সরিয়ে দিয়েছে, সুতরাং এটি আর বিকল্প নয় is
জোশুয়া

জোশুয়া - হ্যাঁ, আপনি ঠিক বলেছেন; কমপক্ষে তারা কিছু বৈশিষ্ট্যগুলির জন্য ব্রাউজার সমর্থন সনাক্ত করার জন্য jQuery.support সম্পত্তি ছেড়ে গেছে (তবে আমি প্রাথমিক প্রশ্নটির ক্ষেত্রে এটি নিশ্চিত কিনা)
মেরেক

7

খাঁটি জাভাস্ক্রিপ্টে আপনি navigator.userAgentফায়ারফক্স সংস্করণটি খুঁজে পেতে একটি RegExp ম্যাচ করতে পারেন :

var uMatch = navigator.userAgent.match(/Firefox\/(.*)$/),
    ffVersion;
if (uMatch && uMatch.length > 1) {
    ffVersion = uMatch[1];
}

ffVersionহতে হবে undefinedএকটি ফায়ারফক্স ব্রাউজার যদি না।

কাজের উদাহরণ দেখুন →


4

দেখুন navigator.userAgent- Firefox/xxx.xxx.xxxঠিক শেষে নির্দিষ্ট করা আছে।


4
<script type="text/javascript">
var version = navigator.appVersion;
alert(version);
</script>

4

আমি হারমান ইনজালডসনের উত্তরের উপর ভিত্তি করে একটি সংস্করণ সনাক্তকারী লিখেছি, তবে আরও শক্তিশালী এবং এটিতে নাম / সংস্করণ ডেটা সহ কোনও বস্তু ফেরত দেয়। এটি মুখ্য ব্রাউজারগুলিকে কভার করে তবে আমি মোবাইল এবং অপ্রাপ্তবয়স্কদের আধিক্য নিয়ে বিরক্ত করি না:

function getBrowserData(nav) {
    var data = {};

    var ua = data.uaString = nav.userAgent;
    var browserMatch = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [];
    if (browserMatch[1]) { browserMatch[1] = browserMatch[1].toLowerCase(); }
    var operaMatch = browserMatch[1] === 'chrome';
    if (operaMatch) { operaMatch = ua.match(/\bOPR\/([\d\.]+)/); }

    if (/trident/i.test(browserMatch[1])) {
        var msieMatch = /\brv[ :]+([\d\.]+)/g.exec(ua) || [];
        data.name = 'msie';
        data.version = msieMatch[1];
    }
    else if (operaMatch) {
        data.name = 'opera';
        data.version = operaMatch[1];
    }
    else if (browserMatch[1] === 'safari') {
        var safariVersionMatch = ua.match(/version\/([\d\.]+)/i);
        data.name = 'safari';
        data.version = safariVersionMatch[1];
    }
    else {
        data.name = browserMatch[1];
        data.version = browserMatch[2];
    }

    var versionParts = [];
    if (data.version) {
        var versionPartsMatch = data.version.match(/(\d+)/g) || [];
        for (var i=0; i < versionPartsMatch.length; i++) {
            versionParts.push(versionPartsMatch[i]);
        }
        if (versionParts.length > 0) { data.majorVersion = versionParts[0]; }
    }
    data.name = data.name || '(unknown browser name)';
    data.version = {
        full: data.version || '(unknown full browser version)',
        parts: versionParts,
        major: versionParts.length > 0 ? versionParts[0] : '(unknown major browser version)'
    };

    return data;
};

এটি এর পরে এটি ব্যবহার করা যেতে পারে:

var brData = getBrowserData(window.navigator || navigator);
console.log('name: ' + brData.name);
console.log('major version: ' + brData.version.major);
// etc.

3
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version"

if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1)
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent

else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome"

else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version"

else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1)
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox"

else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent

else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
          (verOffset=nAgt.lastIndexOf('/')) )
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}

// trim the fullVersion string at semicolon/space if present

if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion);
 majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
 +'Browser name  = '+browserName+'<br>'
 +'Full version  = '+fullVersion+'<br>'
 +'Major version = '+majorVersion+'<br>'
 +'navigator.appName = '+navigator.appName+'<br>'
 +'navigator.userAgent = '+navigator.userAgent+'<br>'
)

ডেমোটি এখানে দেখুন .. http://jsfiddle.net/hw4jM/3/


2

ব্রাউজার, ব্রাউজার সংস্করণ, ওএস এবং ওএস সংস্করণ সনাক্ত করতে আমি এএসপি কোডে একটি স্ক্রিপ্ট তৈরি করেছি। আমার এএসপিতে এটি করার কারণ হ'ল আমি লগ-ডাটাবেজে ডেটা সঞ্চয় করতে চাই। সুতরাং আমি ব্রাউজার সার্ভারসাইড সনাক্ত করতে হয়েছিল।

কোডটি এখানে:

on error resume next
ua = lcase(Request.ServerVariables("HTTP_USER_AGENT"))
moz = instr(ua,"mozilla")  
ffx = instr(ua,"firefox")  
saf = instr(ua,"safari")
crm = instr(ua,"chrome") 
max = instr(ua,"maxthon") 
opr = instr(ua,"opera")
ie4 = instr(ua,"msie 4") 
ie5 = instr(ua,"msie 5") 
ie6 = instr(ua,"msie 6") 
ie7 = instr(ua,"msie 7") 
ie8 = instr(ua,"trident/4.0")
ie9 = instr(ua,"trident/5.0")

if moz>0 then 
    BrowserType = "Mozilla"
    BrVer = mid(ua,moz+8,(instr(moz,ua," ")-(moz+8)))
end if
if ffx>0 then 
    BrowserType = "FireFox"
    BrVer = mid(ua,ffx+8)
end if
if saf>0 then 
    BrowserType = "Safari"
    BrVerPlass = instr(ua,"version")
    BrVer = mid(ua,BrVerPlass+8,(instr(BrVerPlass,ua," ")-(BrVerPlass+8)))
end if
if crm>0 then 
    BrowserType = "Chrome"
    BrVer = mid(ua,crm+7,(instr(crm,ua," ")-(crm+7)))
end if
if max>0 then 
    BrowserType = "Maxthon"
    BrVer = mid(ua,max+8,(instr(max,ua," ")-(max+8)))
end if
if opr>0 then 
    BrowserType = "Opera"
    BrVerPlass = instr(ua,"presto")
    BrVer = mid(ua,BrVerPlass+7,(instr(BrVerPlass,ua," ")-(BrVerPlass+7)))
end if
if ie4>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "4"
end if
if ie5>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "5"
end if
if ie6>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "6"
end if
if ie7>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "7"
end if
if ie8>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "8"
    if ie7>0 then BrVer = BrVer & " (in IE7 compability mode)"
end if
if ie9>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "9"
    if ie7>0 then BrVer = BrVer & " (in IE7 compability mode)"
    if ie8>0 then BrVer = BrVer & " (in IE8 compability mode)"
end if

OSSel = mid(ua,instr(ua,"(")+1,(instr(ua,";")-instr(ua,"("))-1)
OSver = mid(ua,instr(ua,";")+1,(instr(ua,")")-instr(ua,";"))-1)

if BrowserType = "Internet Explorer" then
    OSStart = instr(ua,";")
    OSStart = instr(OSStart+1,ua,";")        
    OSStopp = instr(OSStart+1,ua,";")
    OSsel = mid(ua,OSStart+2,(OSStopp-OSStart)-2)
end if

    Select case OSsel
        case "windows nt 6.1"
            OS = "Windows"
            OSver = "7"
        case "windows nt 6.0"
            OS = "Windows"
            OSver = "Vista"
        case "windows nt 5.2"
            OS = "Windows"
            OSver = "Srv 2003 / XP x64"
        case "windows nt 5.1"
            OS = "Windows"
            OSver = "XP"
        case else
            OS = OSSel
    End select

Response.write "<br>" & ua & "<br>" & BrowserType & "<br>" & BrVer & "<br>" & OS & "<br>" & OSver & "<br>"

'Use the variables here for whatever you need........

2

এই পৃষ্ঠায় একটি দুর্দান্ত সুন্দর স্নিপেট রয়েছে যা এটি কেবলমাত্র অ্যাপস্ট্রিং এবং অ্যাপভারসন সম্পত্তিটিকে একটি শেষ অবলম্বন হিসাবে ব্যবহার করে কারণ এটি তাদের নির্দিষ্ট ব্রাউজারগুলির সাথে অবিশ্বস্ত বলে দাবি করে। পৃষ্ঠায় কোডটি নিম্নরূপ:

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera 15+, the true version is after "OPR/" 
if ((verOffset=nAgt.indexOf("OPR/"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
          (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
 +'Browser name  = '+browserName+'<br>'
 +'Full version  = '+fullVersion+'<br>'
 +'Major version = '+majorVersion+'<br>'
 +'navigator.appName = '+navigator.appName+'<br>'
 +'navigator.userAgent = '+navigator.userAgent+'<br>'
)

2

হারম্যানের উত্তরটির নিজস্ব বাস্তবায়ন যুক্ত করছি। আমার ওএস সনাক্তকরণের দরকার ছিল যাতে এটি যুক্ত করা যায়। এছাড়াও কিছু ES6 কোড অন্তর্ভুক্ত রয়েছে (কারণ আমাদের একটি ট্রান্সপ্লার রয়েছে) যা আপনার ES5-ify প্রয়োজন হতে পারে।

detectClient() {
    let nav = navigator.appVersion,
        os = 'unknown',
        client = (() => {
            let agent = navigator.userAgent,
                engine = agent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [],
                build;

            if(/trident/i.test(engine[1])){
                build = /\brv[ :]+(\d+)/g.exec(agent) || [];
                return {browser:'IE', version:(build[1] || '')};
            }

            if(engine[1] === 'Chrome'){
                build = agent.match(/\bOPR\/(\d+)/);

                if(build !== null) {
                    return {browser: 'Opera', version: build[1]};
                }
            }

            engine = engine[2] ? [engine[1], engine[2]] : [navigator.appName, nav, '-?'];

            if((build = agent.match(/version\/(\d+)/i)) !== null) {
                engine.splice(1, 1, build[1]);
            }

            return {
              browser: engine[0],
              version: engine[1]
            };
        })();

    switch (true) {
        case nav.indexOf('Win') > -1:
            os = 'Windows';
        break;
        case nav.indexOf('Mac') > -1:
            os = 'MacOS';
        break;
        case nav.indexOf('X11') > -1:
            os = 'UNIX';
        break;
        case nav.indexOf('Linux') > -1:
            os = 'Linux';
        break;
    }        

    client.os = os;
    return client;
}

রিটার্নস: Object {browser: "Chrome", version: "50", os: "UNIX"}


2

আমার যে সমস্যাটি সমাধান করতে হয়েছিল তার জন্য আমি এই কোডটি লিখেছিলাম share এটি বেশিরভাগ প্রধান ব্রাউজারগুলিতে পরীক্ষা করা হয়েছিল এবং আমার জন্য কবজির মতো কাজ করে!

মনে হতে পারে যে এই কোডটি অন্য উত্তরগুলির সাথে একেবারেই অনুরূপ তবে এটি পরিবর্তিত হয়েছে যাতে আমি এটি জ্যাকোরিতে ব্রাউজারের অবজেক্টটি ব্যবহার করতে পারি যা আমার জন্য সম্প্রতি মিস হয়েছিল, অবশ্যই এটি উপরের কোডগুলির সংমিশ্রণ, এতে সামান্য উন্নতি হয়েছে আমার অংশ আমি তৈরি:

(function($, ua){

var M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [],
    tem, 
    res;

if(/trident/i.test(M[1])){
    tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
    res = 'IE ' + (tem[1] || '');
}
else if(M[1] === 'Chrome'){
    tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
    if(tem != null) 
        res = tem.slice(1).join(' ').replace('OPR', 'Opera');
    else
        res = [M[1], M[2]];
}
else {
    M = M[2]? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
    if((tem = ua.match(/version\/(\d+)/i)) != null) M = M.splice(1, 1, tem[1]);
    res = M;
}

res = typeof res === 'string'? res.split(' ') : res;

$.browser = {
    name: res[0],
    version: res[1],
    msie: /msie|ie/i.test(res[0]),
    firefox: /firefox/i.test(res[0]),
    opera: /opera/i.test(res[0]),
    chrome: /chrome/i.test(res[0]),
    edge: /edge/i.test(res[0])
}

})(typeof jQuery != 'undefined'? jQuery : window.$, navigator.userAgent);

 console.log($.browser.name, $.browser.version, $.browser.msie); 
// if IE 11 output is: IE 11 true

2

navigator.sayswho= (function(){
    var ua= navigator.userAgent, tem, 
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    if(M[1]=== 'Chrome'){
        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
    }
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
    return M.join(' ');
})();

console.log(navigator.sayswho); // outputs: `Chrome 62`


1

আমি প্রকৃত ব্রাউজারের সংস্করণটির নাম এবং নম্বর (ইন্টি) পেতে এটি ব্যবহার করি:

function getInfoBrowser() {
    var ua = navigator.userAgent, tem,
    M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if (/trident/i.test(M[1])) {
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return { name: 'Explorer', version: parseInt((tem[1] || '')) };
    }
    if (M[1] === 'Chrome') {
        tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
        if (tem != null) { let app = tem.slice(1).toString().split(','); return { name: app[0].replace('OPR', 'Opera'), version: parseInt(app[1]) }; }
    }
    M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
    if ((tem = ua.match(/version\/(\d+)/i)) != null) M.splice(1, 1, tem[1]);
    return {
        name: M[0],
        version: parseInt(M[1])
    };
}

function getBrowser(){
  let info = getInfoBrowser();
  $("#i-name").html(info.name);
  $("#i-version").html(info.version);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="button" onclick="getBrowser();" value="Get Info Browser"/>
<hr/>
Name: <span id="i-name"></span><br/>
Version: <span id="i-version"></span>

এই রান

ক্রোম; ফায়ারফক্স; সাফারি; ইন্টারনেট এক্সপ্লোরার (> = 9); অপেরা; প্রান্ত

আমার জন্য.


1

এখানে এটির পরে আরও ভাল সামঞ্জস্য রয়েছে @ একনেবিক স্নিপেট;
ব্রাউজারের নাম এবং সংস্করণ (72.0.3626.96 এর পরিবর্তে 72 প্রত্যাবর্তন করবে) আসবে।

সাফারি, ক্রোম, অপেরা, ফায়ারফক্স, আইই, এজ, ইউসি ব্রাউজারেও মোবাইলে পরীক্ষিত।

function browser() {
    var userAgent = navigator.userAgent,
        match = userAgent.match(/(opera|chrome|crios|safari|ucbrowser|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [],
        result = {},
        tem;

    if (/trident/i.test(match[1])) {
        tem = /\brv[ :]+(\d+)/g.exec(userAgent) || [];
        result.name = "Internet Explorer";
    } else if (match[1] === "Chrome") {
        tem = userAgent.match(/\b(OPR|Edge)\/(\d+)/);

        if (tem && tem[1]) {
            result.name = tem[0].indexOf("Edge") === 0 ? "Edge" : "Opera";
        }
    }
    if (!result.name) {
        tem = userAgent.match(/version\/(\d+)/i); // iOS support
        result.name = match[0].replace(/\/.*/, "");

        if (result.name.indexOf("MSIE") === 0) {
            result.name = "Internet Explorer";
        }
        if (userAgent.match("CriOS")) {
            result.name = "Chrome";
        }

    }
    if (tem && tem.length) {
        match[match.length - 1] = tem[tem.length - 1];
    }

    result.version = Number(match[match.length - 1]);

    return result;
}

0
var ua = navigator.userAgent;

if (/Firefox\//.test(ua))
   var Firefox = /Firefox\/([0-9\.A-z]+)/.exec(ua)[1];

0

আমি আমার প্রয়োজনের জন্য এটি লিখেছি।

এটি যদি কোনও মোবাইল ডিভাইস বা রেটিনা ডিসপ্লে থাকে তবে এটি তথ্য পায়

এটি চেষ্টা করুন

var nav = {
        isMobile:function(){
            return (navigator.userAgent.match(/iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile/i) != null);
        },
        isDesktop:function(){
            return (navigator.userAgent.match(/iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile/i) == null);
        },
        isAndroid: function() {
            return navigator.userAgent.match(/Android/i);
        },
        isBlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        isIOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        isOpera: function() {
            return navigator.userAgent.match(/Opera Mini/i);
        },
        isWindows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        isRetina:function(){
            return window.devicePixelRatio && window.devicePixelRatio > 1;
        },
        isIPad:function(){
            isIPad = (/ipad/gi).test(navigator.platform);
            return isIPad;
        },
        isLandscape:function(){
            if(window.innerHeight < window.innerWidth){
                return true;
            }
            return false;
        },
        getIOSVersion:function(){
            if(this.isIOS()){
                var OSVersion = navigator.appVersion.match(/OS (\d+_\d+)/i);
                OSVersion = OSVersion[1] ? +OSVersion[1].replace('_', '.') : 0;
                return OSVersion;
            }
            else
                return false;
        },
        isStandAlone:function(){
            if(_.is(navigator.standalone))
                return navigator.standalone;
            return false;
        },
        isChrome:function(){
            var isChrome = (/Chrome/gi).test(navigator.appVersion);
            var isSafari = (/Safari/gi).test(navigator.appVersion)
            return isChrome && isSafari;
        },
        isSafari:function(){
            var isSafari = (/Safari/gi).test(navigator.appVersion)
            var isChrome = (/Chrome/gi).test(navigator.appVersion)
            return !isChrome && isSafari;
        }
}

0

কৌণিক ব্যবহার করে যে কোনও পিডব্লিউএ অ্যাপ্লিকেশনটির জন্য আপনি ব্রাউজারটি সূচক html এর মূল বিভাগে সমর্থিত কিনা তা পরীক্ষা করতে কোডটি রাখতে পারেন -

<body>
    <div id="browser"></div>
    <script>
        var operabrowser = true;
        operabrowser = (navigator.userAgent.indexOf('Opera Mini') > -1);
        if (operabrowser) {
            txt = "<p>Browser not supported use different browser...</p>";
            document.getElementById("browser").innerHTML = txt;
        }
    </script>
</body>

-1

এখানে স্ট্রিংয়ের মাধ্যমে স্ট্রিং ব্যবহার করে সার্ভারের পাশে এটি করা পছন্দ করে এমন কারও জন্য জাভা সংস্করণ HttpServletRequest.getHeader("User-Agent");

এটি 70 টি বিভিন্ন ব্রাউজার কনফিগারেশনে কাজ করছে যা আমি পরীক্ষার জন্য ব্যবহার করেছি।

public static String decodeBrowser(String userAgent) {
    userAgent= userAgent.toLowerCase();
    String name = "unknown";
    String version = "0.0";
    Matcher userAgentMatcher = USER_AGENT_MATCHING_PATTERN.matcher(userAgent);
    if (userAgentMatcher.find()) {
      name = userAgentMatcher.group(1);
      version = userAgentMatcher.group(2);
      if ("trident".equals(name)) {
        name = "msie";
        Matcher tridentVersionMatcher = TRIDENT_MATCHING_PATTERN.matcher(userAgent);
        if (tridentVersionMatcher.find()) {
          version = tridentVersionMatcher.group(1);
        }
      }
    }
    return name + " " + version;
  }

  private static final Pattern USER_AGENT_MATCHING_PATTERN=Pattern.compile("(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*([\\d\\.]+)");
  private static final Pattern TRIDENT_MATCHING_PATTERN=Pattern.compile("\\brv[ :]+(\\d+(\\.\\d+)?)");

-1
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName = navigator.appName;
var fullVersion = '' + parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion, 10);
var nameOffset, verOffset, ix;

// In Opera 15+, the true version is after "OPR/" 
if ((verOffset = nAgt.indexOf("OPR/")) != -1) {
    browserName = "Opera";
    fullVersion = nAgt.substring(verOffset + 4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else if ((verOffset = nAgt.indexOf("Opera")) != -1) {
    browserName = "Opera";
    fullVersion = nAgt.substring(verOffset + 6);
    if ((verOffset = nAgt.indexOf("Version")) != -1)
        fullVersion = nAgt.substring(verOffset + 8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
    browserName = "Microsoft Internet Explorer";
    fullVersion = nAgt.substring(verOffset + 5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
    browserName = "Google Chrome";
    fullVersion = nAgt.substring(verOffset + 7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
    browserName = "Safari";
    fullVersion = nAgt.substring(verOffset + 7);
    if ((verOffset = nAgt.indexOf("Version")) != -1)
        fullVersion = nAgt.substring(verOffset + 8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
    browserName = "Mozilla Firefox";
    fullVersion = nAgt.substring(verOffset + 8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
    browserName = nAgt.substring(nameOffset, verOffset);
    fullVersion = nAgt.substring(verOffset + 1);
    if (browserName.toLowerCase() == browserName.toUpperCase()) {
        browserName = navigator.appName;
    }
}
// trim the fullVersion string at semicolon/space if present
if ((ix = fullVersion.indexOf(';')) != -1) fullVersion = fullVersion.substring(0, ix);
if ((ix = fullVersion.indexOf(' ')) != -1) fullVersion = fullVersion.substring(0, ix);

majorVersion = parseInt('' + fullVersion, 10);
if (isNaN(majorVersion)) {
    fullVersion = '' + parseFloat(navigator.appVersion);
    majorVersion = parseInt(navigator.appVersion, 10);
}

2
আপনি কি দয়া করে কোড সহ আপনার কোডের কিছু বর্ণনা রাখতে পারেন?
যোগেশ শর্মা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.