gpt4 book ai didi

php - 在 mysql 表中保存当前 ip 地址

转载 作者:可可西里 更新时间:2023-11-01 07:49:56 26 4
gpt4 key购买 nike

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

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

所以我可能要做的是:

创建一个配置良好的 mysql 表

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

添加删除IP地址的功能,如果不再需要

使过程实时或接近实时

有人可以帮帮我吗?

最佳答案

这是一个简单的例子,说明您如何获取客户端的真实 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

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

$sql = "INSERT INTO user(ip) VALUES('$ip')";
$dbQuery = mysql_query($sql,$dbLink);

有关此链接的更多信息: Best way to store IP addresses in MySQL

附加信息:使您的代码免受 SQL Injection 的影响 。使用 PDO MYSQLI

使用 PDO 扩展的例子:

<?php

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

$stmt->execute();
?>

关于php - 在 mysql 表中保存当前 ip 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com