判断真实ip
/// <summary>
/// 获取真实ip
/// </summary>
/// <returns></returns>
public static string GetRealIP(HttpRequest request)
{
string result = String.Empty;
result = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
//可能有代理
if (!string.IsNullOrEmpty(result))
{
//没有"." 肯定是非IP格式
if (result.IndexOf(".") == -1)
{
result = null;
}
else
{
//有",",估计多个代理。取第一个不是内网的IP。
if (result.IndexOf(",") != -1)
{
result = result.Replace(" ", string.Empty).Replace("\"", string.Empty);
string[] temparyip = result.Split(",;".ToCharArray());
if (temparyip != null && temparyip.Length > 0)
{
for (int i = 0; i < temparyip.Length; i++)
{
//找到不是内网的地址
if (IsIPAddress(temparyip)
&& temparyip.Substring(0, 3) != "10."
&& temparyip.Substring(0, 7) != "192.168"
&& temparyip.Substring(0, 7) != "172.16.")
{
return temparyip;
}
}
}
}
//代理即是IP格式
else if (IsIPAddress(result))
{
return result;
}
//代理中的内容非IP
else
{
result = null;
}
}
}
if (string.IsNullOrEmpty(result))
{
result = request.ServerVariables["REMOTE_ADDR"];
}
if (string.IsNullOrEmpty(result))
{
result = request.UserHostAddress;
}
return result;
}
public static bool IsIPAddress(string str)
{
if (string.IsNullOrEmpty(str) || str.Length < 7 || str.Length > 15)
return false;
string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}{1}quot";
Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
return regex.IsMatch(str);
}
#endregion
最新文章
- 源码编译安装mysql
- Oracle to_char 转换数值
- kali基本设置
- vi, vim 基本使用(2)
- c语言的基本语法
- nodejs学习笔记<;一>;安装及环境搭建
- Alexander Grothendieck去世了
- C语言-05内存剖析
- css3选择器的比较(三) -- 元素选择器 (+, ~)
- SpringMVC通过实体类返回json格式的字符串,并在前端显示
- [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子
- 深度学习模型stacking模型融合python代码,看了你就会使
- 利用adb截图然后传到电脑
- UNIGUI集成HTML导航
- [JSOI 2007]字符加密Cipher
- 更新pip10后 ImportError: cannot import name ‘main&#39;
- Spring RedisTemplate操作-发布订阅操作(8)
- SQL Server中float转字符串进度丢失
- sed与grep正则
- [日常] json_encode对中文和引号的处理差异研究
热门文章
- PHP:第二章——PHP中的break一continue一return语句
- httpclient RequestConfig类
- cas 认证管理器
- hadoop mysql install (5)
- bzoj2463
- AndroidStudio的transformDexArchiveWithExternalLibsDexMergerForDebug报错解决方案
- 关于命名空间的using声明
- ubuntu16 intellij idea install lombok plugin
- django中的分页器组件
- Spring Boot启动 Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator错误