areacode.init.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. if (! defined('IS_INITPHP'))
  3. exit('Access Denied!');
  4. define('__QQWRY__', INITPHP_PATH . "library/area/QQWry.dat");
  5. /**
  6. * 国家地区定位
  7. *
  8. * @author Chen Deben
  9. * @copyright Meitu
  10. */
  11. class areacodeInit
  12. {
  13. private static $cache_data = array();
  14. public function get_area($ip)
  15. {
  16. include_once INITPHP_PATH . "/library/area/QQWry.class.php";
  17. $QQWry = new QQWry($ip);
  18. $country = $QQWry->Country . " " . $QQWry->Local;
  19. $country = mb_convert_encoding($country, 'UTF-8', 'GB2312');
  20. return $country;
  21. }
  22. /**
  23. * 是否属于中国
  24. *
  25. * @param string $area
  26. * @return bool
  27. */
  28. public function inChina($area)
  29. {
  30. $china = array(
  31. '中国',
  32. '北京',
  33. '天津',
  34. '河北',
  35. '山西',
  36. '内蒙古',
  37. '辽宁',
  38. '吉林',
  39. '黑龙江',
  40. '上海',
  41. '山东',
  42. '安徽',
  43. '江苏',
  44. '浙江',
  45. '福建',
  46. '江西',
  47. '河南',
  48. '湖北',
  49. '湖南',
  50. '广东',
  51. '广西',
  52. '海南',
  53. '陕西',
  54. '甘肃',
  55. '宁夏',
  56. '青海',
  57. '新疆',
  58. '重庆',
  59. '四川',
  60. '贵州',
  61. '云南',
  62. '西藏',
  63. '台湾',
  64. '香港',
  65. '澳门',
  66. '大学',
  67. '亚太地区'
  68. );
  69. foreach ($china as $v) {
  70. if (strpos($area, $v) !== false) {
  71. return true;
  72. }
  73. }
  74. return false;
  75. }
  76. public function getIp()
  77. {
  78. if ($_SERVER["HTTP_CDN_SRC_IP"]) {
  79. $ip = $_SERVER["HTTP_CDN_SRC_IP"];
  80. } elseif ($_SERVER["HTTP_X_FORWARDED_FOR"]) {
  81. $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  82. } elseif ($_SERVER["HTTP_CLIENT_IP"]) {
  83. $ip = $_SERVER["HTTP_CLIENT_IP"];
  84. } elseif ($_SERVER["REMOTE_ADDR"]) {
  85. $ip = $_SERVER["REMOTE_ADDR"];
  86. } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
  87. $ip = getenv("HTTP_X_FORWARDED_FOR");
  88. } elseif (getenv("HTTP_CLIENT_IP")) {
  89. $ip = getenv("HTTP_CLIENT_IP");
  90. } elseif (getenv("REMOTE_ADDR")) {
  91. $ip = getenv("REMOTE_ADDR");
  92. } else {
  93. $ip = 'Unknown';
  94. }
  95. return $ip;
  96. }
  97. }