C#取真实IP地址
发布时间:2010年03月06日点击数:
次佚名
-
-
-
- public static string IPAddress
- {
- get
- {
- string result = String.Empty;
- result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
- if(result!=null&&result!= String.Empty)
- {
-
- if(result.IndexOf(".")==-1)
- result = null;
- else
- {
- if(result.IndexOf(",")!=-1)
- {
-
- result = result.Replace(" ","").Replace(""","");
- string[] temparyip = result.Split(",;".ToCharArray());
- for(int i=0;i<temparyip.Length;i++)
- {
- if( Text.IsIPAddress(temparyip[i])
- && temparyip[i].Substring(0,3)!="10."
- && temparyip[i].Substring(0,7)!="192.168"
- && temparyip[i].Substring(0,7)!="172.16.")
- {
- return temparyip[i];
- }
- }
- }
- else if(Text.IsIPAddress(result))
- return result;
- else
- result = null;
- }
- }
- string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]!=null
- && HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] !=String.Empty)?
- HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]:HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
- if (null == result || result == String.Empty)
- result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
- if (result == null || result == String.Empty)
- result = HttpContext.Current.Request.UserHostAddress;
- return result;
- }
- }
- #region bool IsIPAddress(str1) 判断是否是IP格式
-
-
-
-
-
-
- public static bool IsIPAddress(string str1)
- {
- if(str1==null||str1==string.Empty||str1.Length<7||str1.Length>15) return false;
- string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$";
- Regex regex = new Regex(regformat,RegexOptions.IgnoreCase );
- return regex.IsMatch(str1);
- }
- #endregion