Using Microsoft.AspNetCore.Http;
Using System;
Using System.Collections.Generic;
Using System.Text;
Using System.Text.RegularExpressions;
Namespace Niunan.BamaTZ.Web.Models
{
public static Class Requestextensions
{
Regex from http://detectmobilebrowsers.com/
private static readonly regex B = new Regex (@ "(Android|bb\d+|meego). +mobile|avantgo|bada\/|blackberry|blazer|compal| Elaine|fennec|hiptop|iemobile|ip (hone|od) |iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m (ob|in ) I|palm (OS)? | Phone|p (Ixi|re) \/|plucker|pocket|psp|series (4|6) 0|symbian|treo|up\. (browser|link) |vodafone|wap|windows Ce|xda|xiino ", Regexoptions.ignorecase | Regexoptions.multiline);
private static readonly regex v = new Regex (@ "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 (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);
public static bool Ismobilebrowser (this HttpRequest request)
{
var useragent = Request. UserAgent ();
if ((B.ismatch (useragent) | | v.ismatch (useragent.substring (0, 4)))
{
return true;
}
return false;
}
public static string useragent (this HttpRequest request)
{
Return request. headers["User-agent"];
}
}
}
Here's how to use it:
BOOL B = Models.RequestExtensions.IsMobileBrowser (httpcontext.request);
if (b)
{
Return Redirect ("/m/home/index");
}
in ASP. NET core to determine if the mobile side opens the Web page