<?php
//首先获取访客IP v4/v6
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
{
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
{
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR"))
{
$ip = getenv("REMOTE_ADDR");
}
else
{
$ip = "Unknown";
}
echo "Your IP address is: $ip" ;
echo "<br>";
$db = pg_connect("host=xxxx.com dbname=xxxxx user=xxxxx password=xxxxx");
//postgresql数据库登陆信息
if ($db) {
echo 'Connection attempt to PostgreSQL database succeeded.';
} else {
echo 'Connection attempt PostgreSQL database failed.';
}
// 这部分是先创建数据表,可以去掉注释先造表,运行一次后注释该部分
// $sql =<<<EOF
// CREATE TABLE IP_record
// (
// DATE TEXT NOT NULL,
// ADDRESS CHAR(50)
// );
//EOF;
//
// $ret = pg_query($db, $sql);
// if(!$ret){
// echo "<br>";
// echo pg_last_error($db);
// } else {
// echo "<br>";
// echo "IP Table created successfully\n";
// }
//
//将日期和IP地址写入数据库中
$datetime = date('Y-m-d H:i:s');
$sql =<<<EOF
INSERT INTO IP_RECORD (DATE,ADDRESS)
VALUES ('$datetime','$ip' );
EOF;
$ret = pg_query($db, $sql);
if(!$ret){
// echo "<br>";
// echo pg_last_error($db);
} else {
echo "<br>";
echo "IP Record created successfully\n";
}
pg_close($db); //关闭该数据库连接
?>
将代码存为 .php 文件放到服务器上即可。
参考资料:
1. PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2. PHP连接PostgreSQL数据库