Selaa lähdekoodia

获取客户端ua和ip

tgz 2 vuotta sitten
vanhempi
commit
b7e8d59cc0
2 muutettua tiedostoa jossa 45 lisäystä ja 0 poistoa
  1. 6 0
      app/controller/Track.php
  2. 39 0
      app/functions.php

+ 6 - 0
app/controller/Track.php

@@ -13,6 +13,12 @@ class Track
     {
         $params = $request->all();
         //Logger::app('tarck'.json_encode($params));
+        if (empty($params['ip']) || strstr($params['ip'], '240e')) {
+            $params['ip'] = get_client_ip();
+        }
+        if (empty($params['ua']) || $params['ua'] == '__UA__') {
+            $params['ua'] = get_client_ua();
+        }
         TrackService::push($params);
         return 'success' ;
     }

+ 39 - 0
app/functions.php

@@ -61,3 +61,42 @@ function getProp($param, $key, $default = '')
 
     return $result;
 }
+
+/**
+ * 获取真实IP
+ */
+function get_client_ip($type = 0, $adv = true)
+{
+    $type = $type ? 1 : 0;
+    if ($adv) {
+        if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
+            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
+            $pos = array_search('unknown', $arr);
+            if (false !== $pos) {
+                unset($arr[$pos]);
+            }
+            $ip = trim($arr[0]);
+        } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
+            $ip = $_SERVER['HTTP_CLIENT_IP'];
+        } elseif (isset($_SERVER['REMOTE_ADDR'])) {
+            $ip = $_SERVER['REMOTE_ADDR'];
+        }
+    } elseif (isset($_SERVER['REMOTE_ADDR'])) {
+        $ip = $_SERVER['REMOTE_ADDR'];
+    }
+    // IP地址合法验证
+    $long = sprintf("%u", ip2long($ip));
+    $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
+    return $ip[$type];
+}
+
+/**
+ * 获取真实IP
+ */
+function get_client_ua()
+{
+    $ua = $_SERVER['HTTP_USER_AGENT'];
+    return $ua;
+}
+
+