sqlite backend for macs and known_macs

This commit is contained in:
sandb 2010-02-28 19:15:10 +01:00
parent b08f87e9e5
commit 7d0161f6e2
4 changed files with 69 additions and 14 deletions

BIN
db/pamela.sql Normal file

Binary file not shown.

View File

@ -16,8 +16,7 @@ function macs_get() {
function macs_add($mac) { function macs_add($mac) {
$db = get_db(); $db = get_db();
$mac = sqlite_escape_string($mac); $mac = sqlite_escape_string($mac);
$q = sqlite_exec($db, "insert into macs values (\"$mac\", strftime('%s','now'))"); return sqlite_exec($db, "insert or replace into macs values (\"$mac\", strftime('%s','now'))");
if (!$q) return $results;
} }
function macs_purge() { function macs_purge() {

View File

@ -1,6 +1,61 @@
<?php <?php
$mac_translation_table=array( require_once("lib/db.php");
'00:30:05:25:b2:f5' => 'appelblauwzeegroen', //192.168.42.11 appelblauwzeegroen FreeBSD 8.0 00:30:05:25:B2:F5 man-ip: 172.16.1.11
'00:08:02:c8:56:1f' => 'gitorious', //192.168.42.44 gitorious Ubuntu 8.04 00:08:02:C8:56:1F man-ip: 172.16.1.44 function known_macs_get() {
'00:0f:66:c8:ac:db' => 'openwrt' //192.168.42.13 openwrt Openwrt 00:0F:66:C8:AC:DB man-ip: 172.16.1.1 $results = array();
); $db = get_db();
$q = sqlite_query($db, "select * from knownmacs");
if (!$q) return $results;
while(sqlite_has_more($q)) {
$row = sqlite_fetch_array($q, SQLITE_ASSOC);
$results[$row['mac']] = $row['name'];
}
return $results;
}
function known_macs_get_by_user($userid) {
$results = array();
$db = get_db();
$q = sqlite_query($db, "select * from knownmacs where userid = \"userid\"");
if (!$q) return $results;
while(sqlite_has_more($q)) {
$row = sqlite_fetch_array($q, SQLITE_ASSOC);
$results[$row['mac']] = $row['name'];
}
return $results;
}
function known_macs_upsert($mac, $name, $show) {
$db = get_db();
$mac = sqlite_escape_string($mac);
$name = sqlite_escape_string($name);
$show = sqlite_escape_string($show);
return sqlite_exec($db, "insert into knownmacs or replace (mac, name, show) values (\"$mac\", \"$name\", \"$show\")");
}
function known_macs_translate($macs) {
$known_macs = known_macs_get();
$results = array();
foreach($macs as $mac) {
// no translation info? return as-is
if (!array_key_exists($mac, $known_macs)) {
$results[] = $mac;
continue;
}
// private mac? skip
if ($known_macs[$mac] == NULL) continue;
// return translation
$results[] = $known_macs[$mac];
}
return $results;
}
//$mac_translation_table=array(
// '00:30:05:25:b2:f5' => 'appelblauwzeegroen', //192.168.42.11 appelblauwzeegroen FreeBSD 8.0 00:30:05:25:B2:F5 man-ip: 172.16.1.11
// '00:08:02:c8:56:1f' => 'gitorious', //192.168.42.44 gitorious Ubuntu 8.04 00:08:02:C8:56:1F man-ip: 172.16.1.44
// '00:0f:66:c8:ac:db' => 'openwrt' //192.168.42.13 openwrt Openwrt 00:0F:66:C8:AC:DB man-ip: 172.16.1.1
//);

View File

@ -27,14 +27,15 @@ require_once("config.php");
require_once("lib/trans.php"); require_once("lib/trans.php");
require_once("lib/macs.php"); require_once("lib/macs.php");
function translator($mac) { //function translator($mac) {
global $mac_translation_table; // global $mac_translation_table;
if (array_key_exists($mac, $mac_translation_table)) // if (array_key_exists($mac, $mac_translation_table))
return $mac_translation_table[$mac]; // return $mac_translation_table[$mac];
return $mac; // return $mac;
} //}
$macs = macs_get(); $macs = macs_get();
$macs = array_map("translator", $macs); $macs = known_macs_translate($macs);
//$macs = array_map("translator", $macs);
echo '["'.implode('", "', $macs).'"]'; echo '["'.implode('", "', $macs).'"]';
macs_purge(); macs_purge();