Phân tích chuỗi user agent
Trình phân tích user agent đọc các token trong header User-Agent và chuyển chúng thành các trường có cấu trúc. Dưới đây, ba chuỗi cố định — một trình duyệt máy tính, một điện thoại và một crawler của công cụ tìm kiếm — được đưa qua cùng trình phân tích mà công cụ tương tác sử dụng, kèm theo các quy tắc mà nó áp dụng.
Ví dụ minh họa
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
- Trình duyệt
- Chrome 120.0.0.0
- Engine
- Blink
- Hệ điều hành
- Windows 10/11
- Loại thiết bị
- Máy tính
- Thiết bị
- Không rõ
- Kiến trúc CPU
- x64
- Bot / crawler
- Không
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
- Trình duyệt
- Safari 17.0
- Engine
- WebKit
- Hệ điều hành
- iOS 17.0
- Loại thiết bị
- Di động
- Thiết bị
- Apple iPhone
- Kiến trúc CPU
- Không rõ
- Bot / crawler
- Không
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)
- Trình duyệt
- Chrome 120.0.6099.216
- Engine
- Blink
- Hệ điều hành
- Android 6.0.1
- Loại thiết bị
- Bot
- Thiết bị
- Nexus 5X Build/MMB29P
- Kiến trúc CPU
- Không rõ
- Bot / crawler
- Googlebot
Chrome trên Windows gửi Windows NT 10.0, giá trị dùng chung cho cả Windows 10 và Windows 11, nên hệ điều hành được hiển thị là 10/11. Trên iPhone, Version/17.0 cho biết phiên bản Safari và iPhone OS 17_0 cho biết phiên bản iOS. Chuỗi Googlebot nhúng trọn vẹn một user agent Chrome trên Android, nhưng chữ ký crawler được kiểm tra trước, nên loại thiết bị là bot; các trường trình duyệt và hệ điều hành vẫn hiển thị danh tính mà crawler tự khai.
Quy tắc chính
- Chữ ký crawler được kiểm tra trước tiên: Googlebot, Bingbot, DuckDuckBot, YandexBot, Baiduspider, Slackbot, Twitterbot và facebookexternalhit. Khi khớp, loại thiết bị được đặt là bot ngay cả khi có token trình duyệt.
- Trình duyệt được so khớp theo thứ tự cố định — Edge (Edg/), Opera (OPR/), Samsung Internet, Firefox, Chrome, Safari, rồi Chromium — vì hầu hết các chuỗi cũng chứa token của trình duyệt khác. Engine đi theo trình duyệt: Blink, Gecko hoặc WebKit.
- Hệ điều hành được lấy từ phần nền tảng trong ngoặc đơn: iPhone, iPad, Android, Windows NT, CrOS, Mac OS X hoặc Linux. Dấu gạch dưới trong số phiên bản của Apple được chuyển thành dấu chấm.
- Loại thiết bị là máy tính bảng với iPad, token Tablet hoặc Android không có token Mobile; di động với iPhone hoặc Android có token Mobile; và máy tính với Windows, macOS, Linux và ChromeOS.
- Mọi thông tin mà chuỗi không nêu đều để là không rõ (null trong đầu ra JSON) thay vì phỏng đoán. Độ tin cậy chỉ cao khi cả trình duyệt lẫn hệ điều hành đều khớp.
- Bất kỳ client nào cũng có thể gửi user agent Googlebot. Để xác nhận crawler thật của Google, hãy tra cứu DNS ngược với IP của yêu cầu, kiểm tra tên kết thúc bằng googlebot.com hoặc google.com, rồi xác nhận lại bằng tra cứu DNS xuôi.