cncml手绘网
标题: PHP获取来路域名 [打印本页]
作者: admin 时间: 2018-8-19 01:14
标题: PHP获取来路域名
- $url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL+ i' m* M& y' _/ t9 E- V
- 9 G8 r$ m; Z, v& ^1 U7 ^- y2 Q
- $str = str_replace("http://","",$url); //去掉http://0 s9 g9 @( D! Z# D! Q+ `
- $strdomain = explode("/",$str); // 以“/”分开成数组5 X1 {0 Q3 h2 r6 Y3 k1 K
- $domain = $strdomain[0]; //取第一个“/”以前的字符
% o p; E* I( ]# J - , _) j1 Q% N1 e4 B' J
- 用上面的方法才准确无误,如果你用PHP自带的函数就不对如:! x: _$ @4 S$ ?+ t( F
- $_SERVER['SERVER_NAME'] 这个函数它获取的是服务器域名
复制代码- echo $_SERVER['HTTP_REFERER'];5 L, C* r' N$ Z* r. s9 O9 F4 f# b
- 这个获取上个页面的url# k+ S; k$ o; L" D: P9 ?& N, Z J
- 例如获得的是 $url = http://www.weisuyun.com/nihao.html9 ]" O. @5 K2 P ^3 e
- 其他页面提交过来的不接受+ U% I; F7 U6 Y( N* d4 A
- if(strpos($url,'http://www.weisuyun.com')){
' e* `+ H9 S: d/ r5 M% }' y' p0 h/ H - echo '来源正确';
$ |6 c% e. h# ?7 d
. ]7 G9 C! }( O. H8 i2 R- }else{3 r5 f0 v# P; I1 u3 ^
- echo '来源不明';
% N! ?3 r# x3 P! w1 Z ` - }$ k5 u+ K4 |: b0 N8 T1 Z" t5 x
- strpos方法返回指定字符串所在指定字符串第一次出现的位置,没有则返回false,下标从0开始
复制代码 - `5 A9 p, ?1 l0 `
/ g; z F, d* X, t# R2 ]' P2 |4 v8 Q$ s% h) _( l. p3 ?
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
! L! q" N* j4 q' ~
2 U+ r* M) k, d* x" G8 n, N$ M( {7 a8 F% I; V) s1 h+ ~* U! R8 U
前言
本文中主要介绍了关于利用PHP获取访客IP、地区位置、浏览器及来源页面等信息的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
不多说了,每个方法都注释了,可以直接用:
示例代码
- <?php8 T1 N* U! t+ Z, ^
- //这个类似用来获取访客信息的+ p2 r0 U9 j: N* @ G, j
- //方便统计. ^! |4 A0 X) O' u0 o/ T. r: C
- class visitorInfo+ |$ U& p3 C+ @' C
- {
3 v( ^; j2 C( o. v# A - //获取访客ip: a& }4 U- r* H& j' y7 L) G* B! {$ M
- public function getIp()
1 b7 @- w7 Z r& G$ E! ` - {4 x1 Y) u+ q: X) C
- $ip=false;9 K4 s. \* U; l6 H
- if(!empty($_SERVER["HTTP_CLIENT_IP"])){
* v5 Y9 s% y5 g+ R5 z0 k5 Z, e - $ip = $_SERVER["HTTP_CLIENT_IP"];
+ j T' ]- v! S3 d: z2 d# l, E6 n - }. d# M5 ]0 l$ X
- if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {% n) }% f' U9 X& r. P+ k; ^/ d
- $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
* T; [8 P3 \1 L4 ^, R ?! r - if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
0 ^9 r4 W2 S' U) d9 W6 C/ D4 O- e: c - for ($i = 0; $i < count($ips); $i++) {, g: L& g& H1 e8 Z% [4 y
- if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {$ G/ g7 m# G0 E) T( u8 Z0 a
- $ip = $ips[$i];
) d. D5 D2 E {' A n7 I! e - break;- l' w4 n0 Q- z
- }6 h$ r2 {% D9 `6 W) D
- }$ I0 {9 u- X7 A1 Z8 c
- }
1 o- I9 T# p* g8 h: y - return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);9 n# X2 h' N/ W4 z- f9 o7 S
- }/ s% b4 u% u5 U! n* } Y0 r7 e$ |% V5 W
- ( \& s0 B& t( t! d/ F; S9 A) H7 Y
- //根据ip获取城市、网络运营商等信息
- j8 k' d+ v! K - public function findCityByIp($ip){
; m1 E8 t/ P- M5 f$ S! C - $data = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);4 F& i+ W6 V5 I* `! }2 a
- return json_decode($data,$assoc=true);- C3 n: [( a4 N
- }
2 m3 e( \' i; R6 G5 U, v1 { - 6 F1 `% d; G; c! C
- //获取用户浏览器类型
6 i; b! ]3 l- K0 [" N) \ - public function getBrowser(){
/ Y! m, n( F# `8 N/ { - $agent=$_SERVER["HTTP_USER_AGENT"];
0 L9 | ^" e N8 l- i - if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) //ie11判断6 K2 B! N+ K/ i) s1 h/ b. ?4 s
- return "ie";
% w$ F) ~0 \$ d, ^, V7 L% g4 s - else if(strpos($agent,'Firefox')!==false)
0 M' H( i1 T" ]) Y - return "firefox";
1 F! c5 f3 Y* R: _2 p, h - else if(strpos($agent,'Chrome')!==false)! s, C6 \/ `* ]3 K* C/ @5 h
- return "chrome";
) i" n4 V. T" ?( ` - else if(strpos($agent,'Opera')!==false)
" j% V |+ }8 `, L3 d - return 'opera';/ A; r# B% t3 W
- else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false); p& n) r: P }% H8 s% b# U3 C
- return 'safari';
3 Y; q- e7 y4 F2 w$ y - else
: j7 t/ z8 T8 { - return 'unknown';
% G+ k' d, S) @6 ?) T) Q, r - }
; ~( B0 M0 R3 h - : u$ f( g3 Y- b
- //获取网站来源
. B6 a5 L, _% l' M - public function getFromPage(){
, \" Q' Z5 E. S6 ^9 U - return $_SERVER['HTTP_REFERER'];
3 E; H7 |* v) [6 H! W$ g, |1 { - }2 J( v4 U- ]& `6 `" p3 n
- - H( e% k5 N2 }5 g4 E% f: ?" U
- }
复制代码总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
6 j. \( O# z: L$ B
6 ^4 _& W( x; H8 u0 L' m
欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |