using System;
using System.Web;
using System.Text.RegularExpressions;
using System.Web.UI.HtmlControls;
using System.IO;
using System.IO.Compression;
using System.Web.UI.WebControls;
using System.Text;
using System.Collections.Generic;
using System.Net;
namespace HH.WMS.Utils
{
///
/// WEB请求上下文信息工具类
///
public partial class ZHttp
{
#region 可以获取客户端上次请求的url的有关信息
///
/// 返回上一个页面的地址
///
/// 上一个页面的地址
public static string ReferrerUrl
{
get
{
return HttpContext.Current.Request.UrlReferrer == null ? string.Empty : HttpContext.Current.Request.UrlReferrer.OriginalString;
}
}
#endregion
#region 得到用户IP地址
///
/// 得到用户IP地址
///
/// 返回用户IP地址,如果获取不到返回 0.0.0.0
///
public static string ClientIP
{
get
{
var context = HttpContext.Current;
string result = context.Request.UserHostAddress;
if (string.IsNullOrEmpty(result))
{
result = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];//获取包括使用了代理服务器的地址列表。
}
if (string.IsNullOrEmpty(result))
{
result = context.Request.ServerVariables["REMOTE_ADDR"];//最后一个代理服务器地址。
}
if (string.IsNullOrEmpty(result))
{
result = context.Request.UserHostAddress;
}
return result;
}
}
#endregion
public static bool IsLanIP(string IP)
{
var result = false;
var ips = new List() { "10.", "192.", "172.", "127.", "::1", "localhost" };
ips.ForEach(x=>{
if (IP.StartsWith(x)) result = true;
});
return result;
}
public static string ClientHostName
{
get
{
var context = HttpContext.Current;
string IP = context.Request.UserHostAddress;
string Name = context.Request.UserHostName;
if (Name == IP || Name == "127.0.0.1" || Name == "::1")
{
Name = context.Request.ServerVariables["REMOTE_HOST"];
}
if (Name == IP || Name == "127.0.0.1" || Name == "::1")
{
try { Name = Dns.GetHostEntry(IP).HostName; }
catch { }
}
return Name;
}
}
#region 判断是否来自搜索引擎链接
///
/// 判断是否来自搜索引擎链接
///
/// 是否来自搜索引擎链接
public static bool IsFromSearchEngines
{
get
{
string[] SearchEngine = { "google", "yahoo", "msn", "baidu", "sogou", "sohu", "sina", "163", "lycos", "tom", "yisou", "iask", "soso", "gougou", "zhongsou" };
if (HttpContext.Current.Request.UrlReferrer != null)
{
string tmpReferrer = HttpContext.Current.Request.UrlReferrer.ToString().ToLower();
for (int i = 0; i < SearchEngine.Length; i++)
{
if (tmpReferrer.Contains(SearchEngine[i]))
{
return true;
}
}
}
return false;
}
}
#endregion
#region 取得客户端的操作系统
public static string GetPlatformName(HttpRequestBase request)
{
string userAgent = request.UserAgent;
if (string.IsNullOrEmpty(userAgent))
return "未知类型";
else if (userAgent.IndexOf("Windows NT 6.2") != -1)
return "Windows 8";
else if (userAgent.IndexOf("Windows NT 6.1") != -1)
return "Windows 7";
else if (userAgent.IndexOf("Windows NT 6") != -1)
return "Windows Vista";
else if (userAgent.IndexOf("Windows NT 5.1") != -1)
return "Windows XP";
else if (userAgent.IndexOf("Windows NT 5.2") != -1)
return "Windows Server 2003";
else if (userAgent.IndexOf("Windows NT 5") != -1)
return "Windows 2000";
else if (userAgent.IndexOf("iPhone") != -1)
return "iPhone";
else if (userAgent.IndexOf("(iPad;") != -1)
return "iPad";
else if (userAgent.IndexOf("Android") != -1)
return "Android";
else if (userAgent.IndexOf("9x") != -1)
return "Windows ME";
else if (userAgent.IndexOf("98") != -1)
return "Windows 98";
else if (userAgent.IndexOf("95") != -1)
return "Windows 95";
else if (userAgent.IndexOf("NT 4") != -1)
return "Windows NT 4";
if (request.Browser != null && !string.IsNullOrEmpty(request.Browser.Platform))
return request.Browser.Platform.Replace("WinCE", "Windows CE");
else
return "未知类型";
}
#endregion
}
}