如何将访问我网站的人的 IP 保存到 logs.txt?
How do I Save IP's of Those Who Visit My Website to logs.txt?
我有一个网站,我想用它来记录访问者的 ip。现在,我想我有一些代码可以完成这项工作(我从 here 获得):
<?php
function getIPAddress() {
//whether ip is from the share internet
if(!emptyempty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
//whether ip is from the proxy
elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
//whether ip is from the remote address
else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip = getIPAddress();
echo 'User Real IP Address - '.$ip;
?>
我希望它最终做的是将访问我网站的每个人的 IP 地址和日期保存到 log.txt 文件中。我认为您使用fwrite
命令来执行此操作,但我真的不知道。
我对 php 一无所知,所以我正在寻找一本书(如果有任何建议,我们将不胜感激)。 php 有很多看似过时或直接错误的教程,我很乐意避免这些。
感谢任何帮助!
$ip = getIPAddress();
$handle = fopen("logs.txt","a");
$text = date("Y-m-d H:i:s")."\t".$ip;
fwrite($handle,$text);
fwrite($handle,PHP_EOL);
fclose($handle);
echo 'User Real IP Address - '.$ip;
解释:
- 获取IP地址。
- 使用追加模式打开句柄 (fopen)
- 创建您要记录的文本(此时日期格式和 IP 地址)
- 用 fwrite 写入该文本。
- 关闭在步骤 2 中创建的句柄
检查你的logs.txt
$ip = getIPAddress();
$logFile = 'log.txt';
$log = file_get_contents($logFile);
$log .= "User Real IP Address - ".$ip."\n";
file_put_contents($log);
file_get_contents() 将整个文件读入一个字符串 ($log) 然后向其添加更多 ip 然后通过 [= 再次写入18=]().
您可以使用 file_put_contents()
来完成。不要忘记使用锁来避免数据丢失。
$ip = getIpAdress();
$now = date('c');
$new_line = "{$now} {$ip}\r\n";
file_put_contents('/path/to/ips.log', $new_line, LOCK_EX | FILE_APPEND);
我有一个网站,我想用它来记录访问者的 ip。现在,我想我有一些代码可以完成这项工作(我从 here 获得):
<?php
function getIPAddress() {
//whether ip is from the share internet
if(!emptyempty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
//whether ip is from the proxy
elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
//whether ip is from the remote address
else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip = getIPAddress();
echo 'User Real IP Address - '.$ip;
?>
我希望它最终做的是将访问我网站的每个人的 IP 地址和日期保存到 log.txt 文件中。我认为您使用fwrite
命令来执行此操作,但我真的不知道。
我对 php 一无所知,所以我正在寻找一本书(如果有任何建议,我们将不胜感激)。 php 有很多看似过时或直接错误的教程,我很乐意避免这些。
感谢任何帮助!
$ip = getIPAddress();
$handle = fopen("logs.txt","a");
$text = date("Y-m-d H:i:s")."\t".$ip;
fwrite($handle,$text);
fwrite($handle,PHP_EOL);
fclose($handle);
echo 'User Real IP Address - '.$ip;
解释:
- 获取IP地址。
- 使用追加模式打开句柄 (fopen)
- 创建您要记录的文本(此时日期格式和 IP 地址)
- 用 fwrite 写入该文本。
- 关闭在步骤 2 中创建的句柄
检查你的logs.txt
$ip = getIPAddress();
$logFile = 'log.txt';
$log = file_get_contents($logFile);
$log .= "User Real IP Address - ".$ip."\n";
file_put_contents($log);
file_get_contents() 将整个文件读入一个字符串 ($log) 然后向其添加更多 ip 然后通过 [= 再次写入18=]().
您可以使用 file_put_contents()
来完成。不要忘记使用锁来避免数据丢失。
$ip = getIpAdress();
$now = date('c');
$new_line = "{$now} {$ip}\r\n";
file_put_contents('/path/to/ips.log', $new_line, LOCK_EX | FILE_APPEND);