function addDevice($ip, $comm, $mac, $sn, $lati, $long) { $genericSnmpPath = $_SERVER["DOCUMENT_ROOT"] . "/vanguardhe/php_scripts/oidget/genericSnmp.php"; require_once $genericSnmpPath; // to initialize snmp $deco_ip = "'" . $ip . "'"; if ($mac == "") { # code... $mac = "00:00:00:00:00:00"; } if ($sn == "") { # code... $sn = "NA"; } if ($lati == "") { # code... $lati = "-73.6602109"; } if ($long == "") { # code... $long = "45.5263402"; } $deco_mac = "'" . $mac . "'"; $deco_sn = "'" . $sn . "'"; $timestamp = "'" . date('YmdGis') . "'"; $status = "'" . "online" . "'"; if ($comm == "public") { # code... $sysDescr = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.1.0") . "'"; $sysObjectID = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.2.0") . "'"; $sysUpTime = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.3.0") . "'"; $sysContact = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.4.0") . "'"; $sysName = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.5.0") . "'"; $sysLocation = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.6.0") . "'"; $sysService = "'" . snmpget_smallp($ip, ".1.3.6.1.2.1.1.7.0") . "'"; } if ($comm == "PUBLIC") { # code... $sysDescr = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.1.0") . "'"; $sysObjectID = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.2.0") . "'"; $sysUpTime = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.3.0") . "'"; $sysContact = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.4.0") . "'"; $sysName = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.5.0") . "'"; $sysLocation = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.6.0") . "'"; $sysService = "'" . snmpget_bigP($ip, ".1.3.6.1.2.1.1.7.0") . "'"; } if ($comm != "PUBLIC" && $comm != "public") { # code... $sysDescr = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.1.0") . "'"; $sysObjectID = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.2.0") . "'"; $sysUpTime = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.3.0") . "'"; $sysContact = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.4.0") . "'"; $sysName = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.5.0") . "'"; $sysLocation = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.6.0") . "'"; $sysService = "'" . snmpget_generic($ip, $comm, ".1.3.6.1.2.1.1.7.0") . "'"; } require_once "daemon_db_init.php"; $query_exist = "SELECT relname FROM pg_class \n\tWHERE relname = 'daemondevice';"; $result_exist = pg_query($query_exist) or die('Query failed: ' . pg_last_error()); $exist = ''; while ($row_exist = pg_fetch_object($result_exist)) { $exist = $row_exist->relname; } // // 3, if not existed, create it if ($exist != "daemondevice") { # code... $query_construct = "CREATE TABLE PUBLIC.daemondevice(\n\t\t\tid SERIAL PRIMARY KEY,\n\t\t\ttime TEXT ,\n\t\t\tip\t\tinet,\n\t\t\tstatus \t\tTEXT,\n\t\t\tdescription TEXT ,\n\t\t\tmib TEXT,\n\t\t\tuptime TEXT,\n\t\t\tcontact TEXT,\n\t\t\tname TEXT,\n\t\t\tlocation\t\tTEXT,\n\t\t\tservice TEXT,\n\t\t\tlatitude NUMERIC,\n\t\t\tlongtitude NUMERIC,\n\t\t\tMAC macaddr,\n\t\t\tsn TEXT,\n\t\t\tprovision TEXT);"; $result_construct = pg_query($query_construct) or die('Query failed: ' . pg_last_error()); pg_free_result($result_construct); } $query_value = "SELECT \n\t daemondevice.ip\n\tFROM \n\t public.daemondevice\n\tWHERE \n\t daemondevice.ip = {$deco_ip};"; $result_value = pg_query($query_value) or die('Query failed: ' . pg_last_error()); $number = pg_num_rows($result_value); // the number of total device eg1550 $method = "'" . "add" . "'"; if ($number == 0) { # code... $query_insert = "INSERT INTO PUBLIC.daemondevice (time, ip, status, description, mib, uptime, contact, name, location, service, latitude, longtitude, MAC, sn, provision) VALUES ({$timestamp}, {$deco_ip}, {$status}, {$sysDescr}, {$sysObjectID}, {$sysUpTime}, {$sysContact}, {$sysName}, {$sysLocation}, {$sysService}, {$lati}, {$long}, {$deco_mac}, {$deco_sn}, {$method});"; $result_insert = pg_query($query_insert) or die('Query failed: ' . pg_last_error()); pg_free_result($result_insert); echo $deco_ip . " has been inserted!<br>"; } if ($number == 1) { $query_update = "UPDATE PUBLIC.daemondevice SET \n\t\t\ttime= {$timestamp}, \n\t\t\tip= {$deco_ip}, \n\t\t\tstatus = {$status},\n\t\t\tdescription = {$sysDescr},\n\t\t\tmib= {$sysObjectID},\n\t\t\tuptime = {$sysUpTime},\n\t\t\tcontact = {$sysContact},\n\t\t\tname = {$sysName},\n\t\t\tlocation= {$sysLocation},\n\t\t\tservice = {$sysService},\n\t\t\tlatitude={$lati},\n\t\t\tlongtitude= {$long},\n\t\t\tMAC = {$deco_mac},\n\t\t\tsn={$deco_sn},\n\t\t\tprovision = {$method}\n\t\t\tWHERE daemondevice.ip={$deco_ip};"; $result_update = pg_query($query_update) or die('Query failed: ' . pg_last_error()); pg_free_result($result_update); echo $deco_ip . " has been updated!<br>"; } pg_free_result($result_exist); pg_free_result($result_value); //pg_close($dbconn); }
<?php echo ifPingable("8.8.8.8"); echo "<br>"; $ip = "69.70.200.246"; $comm = "public"; $oid = ".1.3.6.1.2.1.1.1.0"; echo snmpget_generic($ip, $comm, $oid); function ifPingable($host, $timeout = 3) { /* ICMP ping packet with a pre-calculated checksum */ $package = "}KPingHost"; $socket = socket_create(AF_INET, SOCK_RAW, 1); socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0)); socket_connect($socket, $host, null); $ts = microtime(true); socket_send($socket, $package, strLen($package), 0); if (socket_read($socket, 255)) { $result = microtime(true) - $ts; } else { $result = false; } socket_close($socket); return $result; } function snmpget_generic($ip, $comm, $oid) { $command = "C:\\usr\\bin\\snmpget -Ov -v 1 -c " . $comm . " " . $ip . " " . $oid . " 2>&1"; $result = shell_exec($command); $result = ext($result); $result = removeQuotation($result);