您的位置:首页 > 代理IP资讯
发布时间:2020-02-20 17:21:20
怎么通过代理服务器获得IP地址

  我们都知道,代理服务器就像是一个第三方,将我们的信息先接收进行一个中转,然后再通过它来发出信息,经过这么个步骤,我们的IP就得到的隐藏。


  怎么通过代理服务器获得真实IP地址?


  ///取得客户端真实IP。如果有代理则取第一个非内网地址


  ///</summary>


  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)//没有“.”肯定是非IPv4格式


  result=null;


  else


  {


  if(result.IndexOf(",")!=-1)


  {


  //有“,”,估计多个代理。取第一个不是内网的IP。


  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))//代理即是IP格式


  return result;


  else


  result=null;//代理中的内容非IP,取IP


  }


  }


  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;


  }


  }


  ///判断是否是IP地址格式0.0.0.0


  ///&lt;/summary&gt;


  ///&lt;param name="str1"&gt;待判断的IP地址&lt;/param&gt;


  ///&lt;returns&gt;true or false&lt;/returns&gt;


  public static bool IsIPAddress(string str1)


  {


  if(str1==null||str1==string.Empty||str1.Length&lt;7||str1.Length&gt;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);


  }


  上面就是飞猪ip带来的教程,如果大家需要获得真实IP,可以这么实现。


上一篇 下一篇