At first it was Microsoft's own Request.Browser.IsMobileDevice method to determine if it was mobile access and found that the mobile side was recognized on the iphone, but not on Android.
Helpless, can only be a stranger
Method One:
/// <summary> ///Regular phone number/// </summary> Private Static ReadOnlyRegex Regexmobile =NewRegex (@"(Iemobile|iphone|ipod|android|nokia|sonyericsson|blackberry|samsung|sec\-|windows ce|motorola|mot\-|up.b| midp\-)", Regexoptions.ignorecase|regexoptions.compiled); /// <summary> ///Is the mobile client/// </summary> Public Static BOOLIsMobile {Get{HttpContext context=HttpContext.Current; if(Context! =NULL) {HttpRequest request=context. Request; if(Request. Browser.ismobiledevice) {return true; } if(!string. IsNullOrEmpty (Request. useragent) &&Regexmobile.ismatch (Request. useragent)) {return true; } } return false; } }
Method Two: (not recommended, regular too much, will certainly affect program performance)
stringStr_u = request.servervariables["http_user_agent"]; Regex b=NewRegex (@"Android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip (Hone|od) |iris| Kindle|lge |maemo|midp|mmp|netfront|opera m (ob|in) i|palm (OS)? | Phone|p (Ixi|re) \/|plucker|pocket|psp|symbian|treo|up\. (Browser|link) |vodafone|wap|windows (ce|phone) |xda|xiino", Regexoptions.ignorecase |regexoptions.multiline); Regex v=NewRegex (@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a Wa|abac|ac (er|oo|s\-) |ai (KO|RN) |al (Av|ca|co) |amoi|an (EX|NY|YW) | Aptu|ar (Ch|go) |as (te|us) |attw|au (di|\-m|r |s) |avan|be (CK|LL|NQ) |bi (lb|rd) |bl (Ac|az) |br (e|v) w|bumb|bw\-(n|u) |c55 \/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co (mp|nd) |craw|da (it|ll|ng) |dbte|dc\-s|devi|dica|dmob|do (c|p) O|ds (12|\ -D) |el (49|ai) |em (L2|ul) |er (ic|k0) |esl8|ez ([4-7]0|os|wa|ze) |fetc|fly (\-|_) |g1 U|g560|gene|gf\-5|g\-mo|go (\.w|od) |GR (Ad|un) |haie|hcit|hd\-(m|p|t) |hei\-|hi (Pt|ta) |hp (I|IP) |hs\-c|ht (c (\-| |_|a|g|p|s|t) |tp) |hu (AW|TC) |i\-(20|go| MA) |i230|iac (|\-|\/) |ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja (t|v) a|jbro|jemu|jigs|kddi|keji|kgt (|\/) |klon| Kpt |kwc\-|kyo (c|k) |le (no|xi) |lg (g|\/(k|l|u) |50|54|\-[a-w]) |libw|lynx|m1\-w|m3ga|m50\/|ma (TE|UI|XO) |MC (01|21|ca ) |m\-cr|me (Di|rc|ri) |mi (o8|oa|ts) |mmef|mo (01|02|bi|de|do|t (\-| |o|v) |zz) |mt (50|p1|v) |mwbp|mywa|n10[0-2]|n20[2-3 ]|n30 (0|2) |n50 (0|2|5) |n7 (0 (0|1) |10) |ne ((c|m) \-|on|tf|wf|wg|wt) |nok (6|i) |nzph|o2im|op (TI|WV) |oran|owg1|p800|pan (a|d|t) |PDXG|PG (13|\-([1-8]|c)) |PHIL|PIRE|PL (AY|UC) |pn\-2|po (ck|rt|se) |PROX|PSIO|PT\-G|QA\-A|QC (07|12|21|32|60| \-[2-7]|i\-) |qtek|r380|r600|raks|rim9|ro (Ve|zo) |s55\/|sa (Ge|ma|mm|ms|ny|va) |sc (01|h\-|oo|p\-) |sdk\/|se (C (\-|0| 1) |47|mc|nd|ri) |sgh\-|shar|sie (\-|m) |SK\-0|SL (45|id) |sm (AL|AR|B3|IT|T5) |so (ft|ny) |sp (01|h\-|v\-|v) |sy (01|MB) | T2 (18|50) |t6 (00|10|18) |ta (gt|lk) |tcl\-|tdg\-|tel (i|m) |tim\-|t\-mo|to (pl|sh) |ts (70|M\-|M3|M5) |tx\-9|up (\.b|g1| Si) |utst|v400|v750|veri|vi (rg|te) |vk (40|5[0-3]|\-v) |vm40|voda|vulc|vx (52|53|60|61|70|80|81|83|85|98) |w3c (\-|) | Webc|whit|wi (g |nc|nw) |wmlb|wonu|x700|yas\-|your|zeto|zte\-", Regexoptions.ignorecase |regexoptions.multiline); if(! (B.ismatch (Str_u) | | V.ismatch (str_u.substring (0,4)))) { //PC Access } Else { //Mobile Access}
C # To determine whether the access portal is mobile or PC