/**
*
* @param string $input
* @param string $string
* @param int $offset
* @param string $separator
* @return $string
*/
function GetDistString( $input,$string,$offset,$separator ) {
$string = substr( $input,strpos( $input,$string )+$offset,strpos( substr( $input,strpos( $input,$string )+$offset ), $separator ) );
return $string;
}
/**
*
* @param array $arrConfig
* @return $config
*/
function ParseConfig( $arrConfig ) {
$config = array();
foreach( $arrConfig as $line ) {
if( $line[0] != "#" ) {
$arrLine = explode( "=",$line );
$config[$arrLine[0]] = $arrLine[1];
}
}
return $config;
}
/**
*
* @param string $freq
* @return $channel
*/
function ConvertToChannel( $freq ) {
$base = 2412;
$channel = 1;
for( $x = 0; $x < 13; $x++ ) {
if( $freq != $base ) {
$base = $base + 5;
$channel++;
} else {
return $channel;
}
}
return "Invalid Channel";
}
/**
* Converts WPA security string to readable format
* @param string $security
* @return string
*/
function ConvertToSecurity( $security ) {
switch( $security ) {
case "[WPA2-PSK-CCMP][ESS]":
return "WPA2-PSK (AES)";
break;
case "[WPA2-PSK-TKIP][ESS]":
return "WPA2-PSK (TKIP)";
break;
case "[WPA2-PSK-CCMP][WPS][ESS]":
return "WPA/WPA2-PSK (TKIP/AES)";
break;
case "[WPA2-PSK-TKIP+CCMP][WPS][ESS]":
return "WPA2-PSK (TKIP/AES) with WPS";
break;
case "[WPA-PSK-TKIP+CCMP][WPS][ESS]":
return "WPA-PSK (TKIP/AES) with WPS";
break;
case "[WPA-PSK-TKIP][WPA2-PSK-CCMP][WPS][ESS]":
return "WPA/WPA2-PSK (TKIP/AES)";
break;
case "[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ESS]":
return "WPA/WPA2-PSK (TKIP/AES)";
break;
case "[WPA-PSK-TKIP][ESS]":
return "WPA-PSK (TKIP)";
break;
case "[WEP][ESS]":
return "WEP";
break;
}
}
/**
*
*
*/
function DisplayDashboard(){
exec( 'ifconfig wlan0', $return );
exec( 'iwconfig wlan0', $return );
$strWlan0 = implode( " ", $return );
$strWlan0 = preg_replace( '/\s\s+/', ' ', $strWlan0 );
// Parse results from ifconfig/iwconfig
preg_match( '/HWaddr ([0-9a-f:]+)/i',$strWlan0,$result );
$strHWAddress = $result[1];
preg_match( '/inet addr:([0-9.]+)/i',$strWlan0,$result );
$strIPAddress = $result[1];
preg_match( '/Mask:([0-9.]+)/i',$strWlan0,$result );
$strNetMask = $result[1];
preg_match( '/RX packets:(\d+)/',$strWlan0,$result );
$strRxPackets = $result[1];
preg_match( '/TX packets:(\d+)/',$strWlan0,$result );
$strTxPackets = $result[1];
preg_match( '//RX bytes:(\d+)/i',$strWlan0,$result );
$strRxBytes = $result[1];
preg_match( '/TX Bytes:(\d+ \(\d+.\d+ [K|M|G]iB\))/i',$strWlan0,$result );
$strTxBytes = $result[1];
preg_match( '/ESSID:\"([a-zA-Z0-9\s]+)\"/i',$strWlan0,$result );
$strSSID = str_replace( '"','',$result[1] );
preg_match( '/Access Point: ([0-9a-f:]+)/i',$strWlan0,$result );
$strBSSID = $result[1];
preg_match( '/Bit Rate=([0-9]+ Mb\/s)/i',$strWlan0,$result );
$strBitrate = $result[1];
preg_match( '/Tx-Power=([0-9]+ dBm)/i',$strWlan0,$result );
$strTxPower = $result[1];
preg_match( '/Link Quality=([0-9]+)/i',$strWlan0,$result );
$strLinkQuality = $result[1];
preg_match( '/Signal Level=([0-9]+)/i',$strWlan0,$result );
$strSignalLevel = $result[1];
preg_match('/Frequency:(\d+.\d+ GHz)/i',$strWlan0,$result);
$strFrequency = $result[1];
if(strpos( $strWlan0, "UP" ) !== false && strpos( $strWlan0, "RUNNING" ) !== false ) {
$status = '
Interface is up
';
$wlan0up = true;
} else {
$status = 'Interface is down
';
}
if( isset($_POST['ifdown_wlan0']) ) {
exec( 'ifconfig wlan0 | grep -i running | wc -l',$test );
if($test[0] == 1) {
exec( 'sudo ifdown wlan0',$return );
} else {
echo 'Interface already down';
}
} elseif( isset($_POST['ifup_wlan0']) ) {
exec( 'ifconfig wlan0 | grep -i running | wc -l',$test );
if($test[0] == 0) {
exec( 'sudo ifup wlan0',$return );
} else {
echo 'Interface already up';
}
}
?>
Dashboard
Interface Information
Interface Name : wlan0
IP Address :
Subnet Mask :
Mac Address :
Interface Statistics
Received Packets :
Received Bytes :
Transferred Packets :
Transferred Bytes :
Wireless Information
Connected To :
AP Mac Address :
Bitrate :
Transmit Power :
Frequency :
Link Quality :
Signal Level :
Configure client
Client settings
2 ) {
exec( 'wpa_passphrase '.$ssid. ' ' . $psk,$network );
foreach($network as $b) {
$config .= "$b
";
}
}
}
exec( "echo '$config' > /tmp/wifidata", $return );
system( 'sudo cp /tmp/wifidata ' . RASPI_WPA_SUPPLICANT_CONFIG, $returnval );
if( $returnval == 0 ) {
echo '
Wifi settings updated successfully
';
} else {
echo '
Wifi settings failed to be updated
';
}
// scan networks
} elseif( isset($_POST['Scan']) ) {
$return = '';
exec( 'sudo wpa_cli scan',$return );
sleep(3);
exec( 'sudo wpa_cli scan_results',$return );
for( $shift = 0; $shift < 4; $shift++ ) {
array_shift($return);
}
// display output
echo '
';
} else {
$status = '
OpenVPN is running
';
}
// parse client settings
foreach( $returnClient as $a ) {
if( $a[0] != "#" ) {
$arrLine = explode( " ",$a) ;
$arrClientConfig[$arrLine[0]]=$arrLine[1];
}
}
// parse server settings
foreach( $returnServer as $a ) {
if( $a[0] != "#" ) {
$arrLine = explode( " ",$a) ;
$arrServerConfig[$arrLine[0]]=$arrLine[1];
}
}
?>
';
} else {
$status = '
TOR is running
';
}
foreach( $return as $a ) {
if( $a[0] != "#" ) {
$arrLine = explode( " ",$a) ;
$arrConfig[$arrLine[0]]=$arrLine[1];
}
}
?>
/tmp/hostapddata", $return );
system( "sudo cp /tmp/hostapddata " . RASPI_HOSTAPD_CONFIG, $return );
if( $return == 0 ) {
echo "Wifi Hotspot settings saved";
} else {
echo "Wifi Hotspot settings failed to be saved";
}
} elseif( isset($_POST['SaveOpenVPNSettings']) ) {
// TODO
} elseif( isset($_POST['SaveTORProxySettings']) ) {
// TODO
} elseif( isset($_POST['StartHotspot']) ) {
echo "Attempting to start hotspot";
exec( 'sudo /etc/init.d/hostapd start', $return );
foreach( $return as $line ) {
echo $line."
";
}
} elseif( isset($_POST['StopHotspot']) ) {
echo "Attempting to stop hotspot";
exec( 'sudo /etc/init.d/hostapd stop', $return );
foreach( $return as $line ) {
echo $line."
";
}
} elseif( isset($_POST['StartOpenVPN']) ) {
echo "Attempting to start openvpn";
exec( 'sudo /etc/init.d/openvpn start', $return );
foreach( $return as $line ) {
echo $line."
";
}
} elseif( isset($_POST['StopOpenVPN']) ) {
echo "Attempting to stop openvpn";
exec( 'sudo /etc/init.d/openvpn stop', $return );
foreach( $return as $line ) {
echo $line."
";
}
} elseif( isset($_POST['StartTOR']) ) {
echo "Attempting to start TOR";
exec( 'sudo /etc/init.d/tor start', $return );
foreach( $return as $line ) {
echo $line."
";
}
} elseif( isset($_POST['StopTOR']) ) {
echo "Attempting to stop TOR";
exec( 'sudo /etc/init.d/tor stop', $return );
foreach( $return as $line ) {
echo $line."
";
}
}
}
?>