获取真ip

  1. /// <summary>
  2. /// 获取真ip
  3. /// </summary>
  4. /// <returns></returns>
  5. public string GetRealIP()
  6. {
  7. string result = String.Empty;
  8. // result = System.Web.HttpContext.Current.Request.ServerVariables["RemoteIp"];
  9. result = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
  10. //可能有代理
  11. if (!string.IsNullOrWhiteSpace(result))
  12. {
  13. //没有"." 肯定是非IP格式
  14. if (result.IndexOf(".") == -1)
  15. {
  16. result = null;
  17. }
  18. else
  19. {
  20. //有",",估计多个代理。取第一个不是内网的IP。
  21. if (result.IndexOf(",") != -1)
  22. {
  23. result = result.Replace(" ", string.Empty).Replace("\"", string.Empty);
  24. string[] temparyip = result.Split(",;".ToCharArray());
  25. if (temparyip != null && temparyip.Length > 0)
  26. {
  27. for (int i = 0; i < temparyip.Length; i++)
  28. {
  29. //找到不是内网的地址
  30. if (IsIPAddress(temparyip[i]) && temparyip[i].Substring(0, 3) != "10." && temparyip[i].Substring(0, 7) != "192.168" && temparyip[i].Substring(0, 7) != "172.16.")
  31. {
  32. return temparyip[i];
  33. }
  34. }
  35. }
  36. }
  37. //代理即是IP格式
  38. else if (IsIPAddress(result))
  39. {
  40. return result;
  41. }
  42. //代理中的内容非IP
  43. else
  44. {
  45. result = null;
  46. }
  47. }
  48. }
  49. if (string.IsNullOrWhiteSpace(result))
  50. {
  51. result = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
  52. }
  53. if (string.IsNullOrWhiteSpace(result))
  54. {
  55. result = System.Web.HttpContext.Current.Request.UserHostAddress;
  56. }
  57. return result;
  58. }
  59. public bool IsIPAddress(string str)
  60. {
  61. if (string.IsNullOrWhiteSpace(str) || str.Length < 7 || str.Length > 15)
  62. return false;
  63. string regformat = @"^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}";
  64. //var match = Regex.Match(str, @"^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})");
  65. Regex regex = new Regex(regformat, RegexOptions.IgnoreCase);
  66. return regex.IsMatch(str);
  67. }
时间: 2024-10-06 00:43:26

获取真ip的相关文章

php获取客户端IP

从Onethink代码里摘出来的 /**  * 获取客户端IP地址  * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字  * @return mixed  */ function get_client_ip($type = 0) {     $type       =  $type ? 1 : 0;     static $ip  =   NULL;     if ($ip !== NULL) return $ip[$type];     if 

Linux学习之命令行获取公网IP方法详解

本文和大家分享的主要是主要是linux命令行获取公网IP相关内容,一起来看看吧,希望对大家学习linux有所帮助. curl ipinfo.io $ curl ipinfo.io { "ip": "36.10.25.4", "city": "Hangzhou", "region": "Zhejiang", "country": "CN", &quo

获取当前IP地址,跳转到对应城市网站。

index.php文件 1,通过获取当前IP地址, 2,调用新浪AIP,获取到当前城市. 3,将中文转换为拼音后跳转. <?php include './pinyin.php'; //获取当前ip function getIp(){ $onlineip=''; if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')){ $onlineip=getenv('HTTP_CLIENT_IP');

python 练习获取当前ip

#!/usr/bin/python from subprocess import Popen,PIPE def getIfconfig():     data = Popen(['ifconfig'], stdout=PIPE)     new_data = data.stdout.read().split('\n\n')     return [i for i in new_data if i] def getIp(data):     dic = {}     for i in data:

nginx 后端获取真实ip

nginx前端配置 server {listen 80;server_name blog.jinchuang.org; access_log logs/blog.access.log;error_log logs/blog.error.log;location / {proxy_pass http://dis ;                    proxy_set_header Host $host;                    proxy_set_header X-Real-I

C#获取局域网IP、MAC地址和端口的初学

首先非常感谢Melou的http://www.cnblogs.com/luoht/archive/2009/12/18/1627431.html的随笔,对于初学C#的我,参考你的随笔对我的学习真是有莫大帮助. C#遍历局域网的几种方法: 1.微软社区上介绍了使用Active Directory 来遍历局域网 首先我们来了解DirectoryEntry类是一个什么类. 命名空间:  System.DirectoryServices程序集:  System.DirectoryServices(在 S

c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明

客户端ip: Request.ServerVariables.Get("Remote_Addr").ToString(); 客户端主机名: Request.ServerVariables.Get("Remote_Host").ToString(); 客户端浏览器IE: Request.Browser.Browser; 客户端浏览器 版本号: Request.Browser.MajorVersion;// 客户端操作系统: Request.Browser.Platfo

获取代理IP地址

今天在开源中国上看到有个有写了个小程序,用来获取代理IP地址.用的beautifulsoup. 自己动手用正则重写了一下. #!/usr/bin/python import requests import re pattern=re.compile(r'(\d+)\D(\d+)\D(\d+)\D(\d+)\D(\d+)') headers={'Host':"www.ip-adress.com", 'User-Agent':"Mozilla/5.0 (Windows NT 6.

php 获取客户端ip

1 function getRealIp() { 2 if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) 3 $ip = getenv("HTTP_CLIENT_IP"); 4 else if (getenv("HTTP_X_FORWARDED_FOR") && st