news / includes / ping.php /
8f24d6a 7 years ago
1 contributor
140 lines | 4.383kb
<?php

include_once( 'includes/status_messages.php' );

/**
*
* Manage DHCP configuration
*
*/
function DisplayPing() {

  $status = new StatusMessages();
  exec( 'ifconfig eth0 | wc -l',$output );
  $output_state = ($output[0] > 0);
  $ActiveDigTab=isset( $_POST['Dig'] );

  $value="";
  
  if( isset( $_POST['Ping'] ) ) {
    if (CSRFValidate()) {
      $value=$_POST['Ping'];
      exec('sudo /bin/ping -c 1 -w 2 '.$_POST['Ping'], $output, $return); 
      if ($return == 0) {
        $status->addMessage('Ping <em><b>'.$_POST['Ping'].'</b></em><br>'.$output[2].'<br>'.$output[6], 'success');
      } else {
        $status->addMessage('Failed to ping <em><b>'.$_POST['Ping'].'</b></em>', 'danger');
      }
    } else {
      error_log('CSRF violation');
    }
  } else if( isset( $_POST['Dig'] ) ) {
    if (CSRFValidate()) {
      $value=$_POST['Dig'];
      exec('/usr/bin/dig '.$_POST['record'].' '.$_POST['Dig'], $output, $return); 
      $Lines=count($output);
      $DigMessage='Dig '.$_POST['record'].' <em><b>'.$_POST['Dig'].'</b></em><br>';
      for($i=1;$i<$Lines;$i++) {
        $DigMessage=$DigMessage.$output[$i].'<br>';
      }
      $status->addMessage($DigMessage, 'success');
    } else {
      error_log('CSRF violation');
    }
  } else {
    if( $output_state ) {
      $status->addMessage('Eth0 is Up and Running', 'success');
    } else {
      $status->addMessage('Eth0 is Down', 'danger');
    }
  }

  ?>
  <div class="row">
  <div class="col-lg-12">
      <div class="panel panel-primary">
      <div class="panel-heading"><i class="fa fa-refresh fa-fw"></i> Ping & Dig
            </div>
        <!-- /.panel-heading -->
        <div class="panel-body">
        <p><?php $status->showMessages(); ?></p>
        <!-- Nav tabs -->
            <ul class="nav nav-tabs">
                <?php 
                if(!$ActiveDigTab) {
                  echo '<li class="active"><a href="#test-ping" data-toggle="tab">Ping</a></li>';
                  echo '<li><a href="#test-dig" data-toggle="tab">Dig</a></li>';
                } else {
                  echo '<li><a href="#test-ping" data-toggle="tab">Ping</a></li>';
                  echo '<li class="active"><a href="#test-dig" data-toggle="tab">Dig</a></li>';
                }
                ?>
            </ul>
        <!-- Tab panes -->
        <div class="tab-content">
    <?php
    if(!$ActiveDigTab) {
      echo '<div class="tab-pane fade in active" id="test-ping">';
    } else {
      echo '<div class="tab-pane fade in" id="test-ping">';
    }
    ?>
    <h4>Ping IP or Domain</h4>
    <form method="POST" action="?page=ping">
    <?php CSRFToken() ?>
    <div class="row">
      <div class="form-group col-md-4">
        <label for="code">IP or Domain</label>
        <input type="text" class="form-control"name="Ping" value="<?php echo $value; ?>" />
      </div>
    </div>
    <input type="submit" class="btn btn-success" value="Ping" name="ping" />
    </form>
    </div><!-- /.tab-pane -->

    <?php
    if(!$ActiveDigTab) {
      echo '<div class="tab-pane fade in" id="test-dig">';
    } else {
      echo '<div class="tab-pane fade in active" id="test-dig">';
    }
    ?>
    <h4>DNS Looking Glass</h4>
    <form method="POST" action="?page=ping">
    <?php CSRFToken() ?>
    <div class="row">
      <div class="form-group col-md-4">
        <label for="code">DNS Record</label>
        <input type="text" class="form-control"name="Dig" value="<?php echo $value; ?>" />
      </div>
    </div>
  
    <div class="row">
      <div class="form-group col-md-4">
        <label for="code">Record Type</label>
        <select class="form-control" name="record">
          <option value="A">A</option>
          <option value="CNAME">CNAME</option>
          <option value="MX">MX</option>
          <option value="NS">NS</option>
          <option value="TXT">TXT</option>
          <option value="PTR">PTR</option>
        </select>
      </div>
    </div>
    <input type="submit" class="btn btn-success" value="Dig" name="dig" />
    </form>
    <div class="col-lg-12">
    </div><!-- /.col-lg-6 -->
    </div><!-- /.tab-pane -->
    </div><!-- /.tab-content -->
    </div><!-- ./ Panel body -->
    <div class="panel-footer"> Information provided by Ping and Dig</div>
        </div><!-- /.panel-primary -->
    </div><!-- /.col-lg-12 -->
  </div><!-- /.row -->
<?php
}

?>