记录服务器端ip,记录这个ip第一次启动文件的时间,并且排除重复的ip

error_reporting(0); //抑制所有错误信息 @header("content-Type: text/html; charset=utf-8"); //语言强制 //获取用户IP地址 $ip = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $ip = ($ip) ? $ip : $_SERVER["REMOTE_ADDR"]; logResult($ip); echo sprintf("你的IP地址是:%s",$ip); function logResult($word='') {     $fp = fopen("log.txt","a");     flock($fp, LOCK_EX) ;     fwrite($fp,"记录时间:".strftime("%Y%m%d%H%M%S",time()).",IP:".$word."\n");     flock($fp, LOCK_UN);     fclose($fp); }?>

上面是记录访问者的ip并且写入log文本,目前我想实现记录服务器端ip而不是访客ip,然后记录这个ip第一次访问这段php文件的时间,并且排除里面重复的ip。怎么改写呢

多台服务器用这个代码,希望记录哪些服务器访问了这个文件


叮当猫咪
浏览 718回答 1
1回答

一只萌萌小番薯

因为客户端是通过浏览器直接请求的,并不通过你所谓的“服务器”,所以,不存在服务器的地址。你有两个办法,一个是用_SERVER["HTTP_HOST"] 得到访问你这个PHP所请求的主机名,然后你自己维护一个域名到IP的列表,查表获得。一个办法是,使用$_SERVER['HTTP_REFERER']获得用户请求这个地址之前的网页的地址,据此判断他是从哪个服务器跳转来了。得到了referer后,然后得到对应的域名,再解析出对应的IP。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript