php调用PostgreSQL数据库记录访客IP地址

871天前 · 网络技术 · 936次阅读

<?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数据库

👍 0

sql 数据库

最后修改于871天前

评论

贴吧 狗头 原神 小黄脸
收起

贴吧

狗头

原神

小黄脸

目录

avatar

伊藤

45

文章数

6

评论数

8

分类