在mysql表中保存当前IP地址

use*_*622 3 php mysql web

我正在寻找一种好方法来显示当前有多少人访问我的网站(实时)。

我发现,这可能是最简单的方法,当我将访问我的服务器/站点的人的 IP 地址保存在 mysql 表中时。

所以我可能需要做的是:

创建一个配置良好的 mysql 表

添加保存IP地址的功能(我猜在php中)

增加删除ip地址的功能,如果不再需要它

使过程实时或接近实时

有人可以帮助我吗?

Joh*_*Woo 5

这是一个快速示例,说明如何获取客户端的真实 IP 地址,然后从 mysql 数据库存储和检索其值

//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
  $ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
  $ip=$_SERVER['REMOTE_ADDR'];
}
//The value of $ip at this point would look something like: "192.0.34.166"
$ip = ip2long($ip);
//The $ip would now look something like: 1073732954
Run Code Online (Sandbox Code Playgroud)

现在您已经将客户端的真实 IP 地址转换为 INT 格式,您可以像往常一样将其写入数据库

$sql = "INSERT INTO user(ip) VALUES('$ip')";
$dbQuery = mysql_query($sql,$dbLink);
Run Code Online (Sandbox Code Playgroud)

有关此链接的更多信息:在 MySQL 中存储 IP 地址的最佳方法

附加信息:使您的代码免受SQL 注入的影响。使用PDOMYSQLI

使用 PDO 扩展的示例:

<?php

    $stmt = $dbh->prepare("INSERT INTO user(ip) VALUES(?)");
    $stmt->bindParam(1, $ip);

    $stmt->execute();
?>
Run Code Online (Sandbox Code Playgroud)