Selam reber,
Script kodları aşağıdaki gibidir;
Bu kodları "mysql_log_isle.php" adlı bir dosyaya kaydedip cron ile 30 dk da bir çalıştırabilirsin.
// PFSENSE 2.1.X CAPTIVE PORTAL GIRISLERINI MYSQL'E LOGLAMA //
// //
// PROGRAMLAMA : Kemal GOK - Subat 2014 //
// Kodlar gelistirmeye, optimizasyona ve genel kullanima aciktir. //
// //
//////////////////////////////////////////////////////////////////////////////
// GENEL TANIMLAR
include('inc/tanimlar.php'); // genel tanimlarin alinmasi ( mysql baglanti bilgileri... )
// son guncelleme zamanini alalim...
$result=mysql_query("SELECT tarih FROM songuncelleme WHERE id=1");
while($row = mysql_fetch_array($result))
{
$songuncelleme=$row[tarih];
}
$say=0;
$logdosya = fopen("/var/log/portalauth.log", "r"); // Captive portal giris loglarının tutuldugu dosya
while (($satirsatiroku = fgets($logdosya)) !== false)
{
$say+=1;
$orj=$satirsatiroku;
// Tarihi almaca
$ay=trim(substr($satirsatiroku, 0,3));
$satirsatiroku=substr($satirsatiroku, 3);
$gun=trim(substr($satirsatiroku, 0,3));
$satirsatiroku=substr($satirsatiroku, 3);
// Saati almaca
$saat=trim(substr($satirsatiroku, 0,9));
$satirsatiroku=trim(substr($satirsatiroku, 9));
$formatlitarih=date('Y-m-d H:i:s', strtotime($gun."-".$ay."-".date("Y")." ".$saat));
// pfsense kısmını silmece...
$pfsil=substr($satirsatiroku,0,strpos($satirsatiroku,":")+1);
$satirsatiroku=substr($satirsatiroku, strpos($satirsatiroku,":")+1);
// Aksiyonu almaca..
$aksiyon=trim(substr($satirsatiroku,0,strpos($satirsatiroku,":")));
$satirsatiroku=substr($satirsatiroku, strpos($satirsatiroku,":"));
// aksiyondan sonra iki nokta üst üsteyi silme...
$satirsatiroku=substr($satirsatiroku,1);
// User Mac IP almaca..
$satirsatiroku=str_replace(" ","",$satirsatiroku);
$useripmacdetay=explode(",",$satirsatiroku);
// Tarih yeni ise mysqle islemece
if (strtotime($formatlitarih) > strtotime($songuncelleme))
{
mysql_query("INSERT INTO loglar (tarih, aksiyon, user, mac, ip, detay) VALUES('$formatlitarih','$aksiyon','$useripmacdetay[0]','$useripmacdetay[1]','$useripmacdetay[2]','$useripmacdetay[3]')");
}
}
// Son guncelle zamanini set edelim...
$simdikitarih=date("Y-m-d H:i:s");
mysql_query("UPDATE songuncelleme set tarih='$simdikitarih' WHERE id=1");
fclose($logdosya);
echo "Yeni loglar islendi, tarihler guncellendi...Islem bitti...";
// Islem bitti...
?>