ข้ามไปยังเนื้อหาหลัก

แยกวิเคราะห์สตริง user agent

ตัวแยกวิเคราะห์ user agent อ่านโทเค็นใน header User-Agent แล้วแปลงเป็นฟิลด์แบบมีโครงสร้าง ด้านล่างนี้คือสตริงคงที่สามรายการ — เบราว์เซอร์เดสก์ท็อป โทรศัพท์ และ crawler ของเครื่องมือค้นหา — ที่ผ่านตัวแยกวิเคราะห์ตัวเดียวกับเครื่องมือแบบโต้ตอบ ตามด้วยกฎที่ตัวแยกวิเคราะห์ใช้

ตัวอย่างพร้อมคำอธิบาย

Chrome บน Windows
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
เบราว์เซอร์
Chrome 120.0.0.0
เอนจิน
Blink
ระบบปฏิบัติการ
Windows 10/11
ประเภทอุปกรณ์
เดสก์ท็อป
อุปกรณ์
ไม่ทราบ
สถาปัตยกรรม CPU
x64
Bot / crawler
ไม่
Safari บน iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1
เบราว์เซอร์
Safari 17.0
เอนจิน
WebKit
ระบบปฏิบัติการ
iOS 17.0
ประเภทอุปกรณ์
มือถือ
อุปกรณ์
Apple iPhone
สถาปัตยกรรม CPU
ไม่ทราบ
Bot / crawler
ไม่
Googlebot (crawler สำหรับสมาร์ทโฟน)
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.216 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
เบราว์เซอร์
Chrome 120.0.6099.216
เอนจิน
Blink
ระบบปฏิบัติการ
Android 6.0.1
ประเภทอุปกรณ์
Bot
อุปกรณ์
Nexus 5X Build/MMB29P
สถาปัตยกรรม CPU
ไม่ทราบ
Bot / crawler
Googlebot

Chrome บน Windows ส่ง Windows NT 10.0 ซึ่ง Windows 10 และ Windows 11 ใช้ร่วมกัน ระบบปฏิบัติการจึงแสดงเป็น 10/11 บน iPhone นั้น Version/17.0 บอกเวอร์ชันของ Safari และ iPhone OS 17_0 บอกเวอร์ชันของ iOS สตริง Googlebot ฝัง user agent ของ Chrome บน Android ไว้ครบถ้วน แต่ลายเซ็น crawler จะถูกตรวจก่อน ประเภทอุปกรณ์จึงเป็น bot ส่วนฟิลด์เบราว์เซอร์และระบบปฏิบัติการยังคงแสดงสิ่งที่ crawler อ้างว่าเป็น

กฎสำคัญ

  • ลายเซ็น crawler จะถูกตรวจก่อน ได้แก่ Googlebot, Bingbot, DuckDuckBot, YandexBot, Baiduspider, Slackbot, Twitterbot และ facebookexternalhit หากตรงกัน ประเภทอุปกรณ์จะถูกตั้งเป็น bot แม้จะมีโทเค็นเบราว์เซอร์อยู่ก็ตาม
  • เบราว์เซอร์ถูกจับคู่ตามลำดับตายตัว — Edge (Edg/), Opera (OPR/), Samsung Internet, Firefox, Chrome, Safari แล้วจึง Chromium — เพราะสตริงส่วนใหญ่มีโทเค็นของเบราว์เซอร์อื่นปนอยู่ด้วย เอนจินจะเป็นไปตามเบราว์เซอร์: Blink, Gecko หรือ WebKit
  • ระบบปฏิบัติการมาจากส่วนแพลตฟอร์มในวงเล็บ: iPhone, iPad, Android, Windows NT, CrOS, Mac OS X หรือ Linux เครื่องหมายขีดล่างในหมายเลขเวอร์ชันของ Apple จะถูกแปลงเป็นจุด
  • ประเภทอุปกรณ์เป็นแท็บเล็ตสำหรับ iPad, โทเค็น Tablet หรือ Android ที่ไม่มีโทเค็น Mobile เป็นมือถือสำหรับ iPhone หรือ Android ที่มีโทเค็น Mobile และเป็นเดสก์ท็อปสำหรับ Windows, macOS, Linux และ ChromeOS
  • สิ่งใดที่สตริงไม่ได้ระบุจะคงเป็นไม่ทราบ (null ในผลลัพธ์ JSON) แทนที่จะเดา ความเชื่อมั่นจะสูงก็ต่อเมื่อจับคู่ได้ทั้งเบราว์เซอร์และระบบปฏิบัติการ
  • ไคลเอนต์ใดก็ส่ง user agent ของ Googlebot ได้ หากต้องการยืนยันว่าเป็น crawler ของ Google จริง ให้ค้นหา DNS ย้อนกลับ (reverse DNS) จาก IP ของคำขอ ตรวจว่าชื่อลงท้ายด้วย googlebot.com หรือ google.com แล้วยืนยันอีกครั้งด้วยการค้นหาแบบไปข้างหน้า (forward lookup)

คู่มือ user agent เพิ่มเติม