qiang-gao-cn / exercise

my repository for exercise
0 stars 0 forks source link

Discussion on UA (user-agent) #3

Open qiang-gao-cn opened 5 years ago

qiang-gao-cn commented 5 years ago

对于UA内容的初步解析;获取UA的系统名称; UA例子:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36

    value = value.replace("%2520", " ")
    if "bot" in value or "crawler" in value or "Java" in value or "Go-http-client" in value or "WhatsApp" in value or "curl" in value or "Test" in value :
        value = "bot"
    elif "Apple TV" in value or "CrKey" in value or "Roku" in value or "AFTS" in value or "SmartTV" in value or "LG NetCast" in value:
        value = "TV"
    elif "VLC" in value or "Lavf" in value :
        value = "ffmpeg"
    elif "Windows NT" in value or "Mozilla/4.0 (compatible;)" in value :
        value = "Windows Desktop"
    elif "CrOS" in value :
        value = "ChromeOS Desktop"
    elif "Macintosh" in value :
        value = "Mac OS X Desktop"
    elif "Linux " in value :
        value = "Linux Desktop"
    elif "Android" in value or "got/" in value:
        value = "Android"
    elif "iPhone" in value or "iPad" in value or "iPod" in value :
        value = "iOS"
    elif "Windows Phone" in value :
        value = "Windows Phone"
    else :
        print(value)
        value = "Unkown"
qiang-gao-cn commented 5 years ago

qiang-gao-cn解析UA的代码:

var result = dataobj[i];
var Devices;
if ( result.indexOf("crawler") != -1 || result.indexOf("Java") != -1 || result.indexOf("Go-http-client") != -1 || result.indexOf("WhatsApp") != -1 || result.indexOf("curl") != -1 || result.indexOf("Test") != -1) {
        Devices = "bot";
 } else if (result.indexOf("Apple TV") != -1 || result.indexOf("CrKey") != -1 || result.indexOf("Roku") != -1 || result.indexOf("AFTS") != -1 || result.indexOf("SmartTV") != -1 || result.indexOf("NetCast") != -1) {
           Devices = "TV";
 } else if (result.indexOf("Windows") != -1) {
           if (result.indexOf("Android") != -1) {
    Devices = "Android";
    } else if (result.indexOf("Phone") != -1) {
        Devices = "Windows Phone";
    } else {
        Devices = "Windows";
       }
} else if (result.indexOf("iPhone") != -1 || result.indexOf("iPod") != -1 || result.indexOf("iPad") != -1) {
    Devices = "iOS";
} else if (result.indexOf("Macintosh") != -1 || result.indexOf("Mac") != -1) {
    Devices = "Mac OS";
 } else if (result.indexOf("Linux") != -1) {
     if (result.indexOf("Android") != -1) {
        Devices = "Android";
    } else {
        Devices = "Linux";
    }
} else if (result.indexOf("VLC") != -1 || result.indexOf("Lavf") != -1) {
    Devices = "ffmpeg";
} else if (result.indexOf("Android") != -1 ) {
    Devices = "Android";
} else if (result.indexOf("CrOS") != -1) {
       Devices = "ChromeOS Desktop";
} else {
    Devices = "Unknown";
}
qiang-gao-cn commented 5 years ago

qiang-gao-cn判断比较与dao-lab判断:

  1. windows的进一步判断;因为win98 或win95区别于windwos NT的判断;

  2. Android的判断;因为Android是使用linux内容,所以Android的user-agent会同时包含Android和linux两个字符;