--- /dev/null
+<?php
+
+require_once("lib.php");
+
+$db->connect();
+
+$fname = "/var/tmp/.phpipman.".time();
+
+if($argc != 2) {
+ echo "usage: ".$argv[0]." subnet-id";
+}
+
+$res = $db->dbobject->query("select * from subnet where sn_id='".$argv[1]."'");
+$id = $argv[1];
+
+foreach($res as $row) {
+ //("sn_id" INTEGER PRIMARY KEY AUTOINCREMENT,"snid_id" INTEGER,"sn_ip" TEXT,"sn_mask" TEXT,"sn_name" TEXT, "sn_desc" TEXT);
+ $sn_ip = $row["sn_ip"];
+ $sn_mask = $row["sn_mask"];
+}
+
+if(ipversion($sn_ip)!=4) return;
+
+system("/usr/bin/nmap -oX $fname -sP $sn_ip/$sn_mask > /dev/null 2>&1");
+
+//$fname = "/var/tmp/.phpipman.1284344553";
+echo "Output in $fname\n";
+
+$sml = simplexml_load_file("$fname");
+
+foreach($sml as $row => $key) {
+ //echo "row: $row\n";
+ if($row == "host") {
+ //print_r($key);
+ $status = $key->status["state"];
+ $ha = $key->address["addr"];
+ //echo "host address: $ha\n";
+ $hname = "";
+ if(isset($key->hostnames->hostname["name"])) {
+ //echo "was set: ".$key->hostnames->hostname["name"]."\n";
+ //exit(0);
+ $hname = $key->hostnames->hostname["name"];
+ }
+
+ //"hosts" ("ho_id" INTEGER PRIMARY KEY AUTOINCREMENT,"ho_sn_id" INTEGER,"ho_ip" TEXT,"ho_name" TEXT,"ho_desc" TEXT);';
+ $doadd = false;
+ if($status == "up") {
+ $doadd = true;
+ if($hname == "") $hname = $ha;
+ echo "up: $ha, $hname\n";
+ } else {
+ if($hname != "") {
+ $doadd = true;
+ echo "down: $ha, $hname\n";
+ }
+ }
+
+ if($doadd) {
+ $sql = "delete from hosts where ho_ip=='$ha'";
+ $db->dbobject->query($sql);
+ $sql = "insert into hosts values (NULL, '$id', '$ha', '$hname', '')";
+ $db->dbobject->query($sql);
+ echo "added, $ha, $hname\n";
+ }
+ }
+
+}
+unlink($fname);
+
+?>
\ No newline at end of file