วันอังคารที่ 9 กันยายน พ.ศ. 2557
การเช็คว่า เข้ามาจาก Wifi หรือ 3G
string UserHostName = Request.UserHostName;
string UserHostAddress1 = Request.UserHostAddress;
string ServerName = Request.ServerVariables["SERVER_NAME"];
string isWifi = "";
try {
GetHostEntry = System.Net.Dns.GetHostEntry(Request.UserHostAddress).HostName;
isWifi = "true";
if(GetHostEntry.Contains("asianet.co.th"))
{
if (UserHostName.Substring(2, 1) == ".") {
isWifi = "false";
}
else {
isWifi = "true";
}
}
} catch (Exception ex)
{
isWifi = "false";
}
อธิบาย เพราะว่า AIS กับ Dtac ไม่ได้ทำ DNS ไว้ ทำให้เวลา get System.Net.Dns.GetHostEntry(Request.UserHostAddress).HostName จึงเกิด Error ทำให้เรารู้ว่าเป็น 3G
ส่วน TRUE ทำ DNS ไว้ เพราะฉะนั้น ต้อง check จาก ip ถ้า ขึ้นต้น แค่เลข 2 ตัว เป็น 3G ถ้า 3 ตัว เป็น Wifi จ๊ะ
ใคร งง ตรงไหน ฝากคำถามไว้นะจ๊ะ