Thread LinuxMagazin Script Fehler (13 answers)
Opened by Gast at 2008-05-30 16:22

roli
 2009-05-19 16:01
#121708 #121708
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

wie hörte ich mal einen Professor sagen: "Ein guter Dialog ist ein vor Zeugen abgewickelter Monolg".
Wie auch immer, ich habe Mike Schilli mal angeschrieben, er gab mir noch den Tip in WatchLan.pm folgende Änderung einzubauen
Code (perl): (dl )
1
2
3
4
5
6
7
8
if($ip_change) {
        my $ip_id;
        my $dummy = WatchLAN::IpAddress->new(string => $ip_change); # unique key
        $dummy->load(speculative =>1);
        $ip_id = $dummy->id;
        #print "IP-ID= $ip_id <\n";
        $device->ip_static_id($ip_id);
    }
, also das "(speculative =>1)". Dann gibt's keine Fehler wenn die IP-Adr noch nicht in der DB drinnen ist.

Nachdem nun auch statische IP's als solche in der DB stehen, ist die nächste Aufgabe zu prüfen ob sich nicht mal die MAC zu dieser IP ändert. Dazu habe ich mir mal folgende SQL ausgedacht
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TEMPORARY TABLE tt1
SELECT DISTINCT t1.string AS IP_Adr, t2.mac_address AS MAC
FROM ip_addresses t1, devices t2, activity t3
WHERE t3.device_id = t2.id
AND t3.ip_address_id = t1.id
AND t2.ip_static_id IS NOT NULL
ORDER BY t1.string;

CREATE TEMPORARY TABLE tt2
SELECT *, COUNT(IP_Adr) AS anz FROM tt1
GROUP BY IP_Adr;

SELECT a.IP_Adr, a.MAC FROM tt1 a, tt2 bA
WHERE a.IP_Adr = b.IP_Adr
AND b.anz >1

nicht schön, aber funktionierend. So wie's aussieht sollte ich mich mal wieder mit JOIN's beschäftigen ;-}

Hat jemand eine Idee wie ich das in ROSE mache?
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2

View full thread LinuxMagazin Script Fehler