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);
}
Exemplo n.º 2
0
<?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);