262 lines
7.7 KiB
PHP
Executable File
262 lines
7.7 KiB
PHP
Executable File
<?php
|
|
$type=$_GET['type'];
|
|
|
|
if ($type == "RTC_time") {
|
|
$time = shell_exec("date '+%d/%m/%Y %H:%M:%S'");
|
|
echo $time;
|
|
}
|
|
|
|
if ($type == "git_pull") {
|
|
$command = 'sudo git pull';
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
if ($type == "sshTunnel") {
|
|
$ssh_port=$_GET['ssh_port'];
|
|
$command = 'sudo ssh -i /var/www/.ssh/id_rsa -f -N -R "'.$ssh_port.':localhost:22" -p 50221 -o StrictHostKeyChecking=no "airlab_server1@aircarto.fr"';
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
if ($type == "reboot") {
|
|
$command = 'sudo reboot';
|
|
$output = shell_exec($command);
|
|
}
|
|
|
|
if ($type == "npm") {
|
|
$port=$_GET['port'];
|
|
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/npm.py ' . $port;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
if ($type == "noise") {
|
|
$command = '/var/www/nebuleair_pro_4g/sound_meter/sound_meter';
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
if ($type == "BME280") {
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/BME280/read.py';
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
# SARA R4 COMMANDS
|
|
if ($type == "sara") {
|
|
$port=$_GET['port'];
|
|
$sara_command=$_GET['command'];
|
|
$sara_command = escapeshellcmd($sara_command);
|
|
$timeout=$_GET['timeout'];
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara.py ' . $port . ' ' . $sara_command . ' ' . $timeout;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
# SARA R4 COMMANDS (MQTT)
|
|
if ($type == "sara_getMQTT_config") {
|
|
$port=$_GET['port'];
|
|
$timeout=$_GET['timeout'];
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/MQTT/get_config.py ' . $port . ' ' . $timeout;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
# SARA R4 COMMANDS (MQTT)
|
|
if ($type == "sara_getMQTT_login_logout") {
|
|
$port=$_GET['port'];
|
|
$timeout=$_GET['timeout'];
|
|
$login_logout=$_GET['login_logout'];
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/MQTT/login_logout.py ' . $port . ' ' . $login_logout . ' ' . $timeout;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
# SARA R4 COMMANDS (MQTT -> publish)
|
|
if ($type == "sara_MQTT_publish") {
|
|
$port=$_GET['port'];
|
|
$timeout=$_GET['timeout'];
|
|
$message=$_GET['message'];
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/MQTT/publish.py ' . $port . ' ' . $message . ' ' . $timeout;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
#Connect to network
|
|
|
|
if ($type == "sara_connectNetwork") {
|
|
$port=$_GET['port'];
|
|
$timeout=$_GET['timeout'];
|
|
$networkID=$_GET['networkID'];
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_connectNetwork.py ' . $port . ' ' . $networkID . ' ' . $timeout;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
#SET THE URL for messaging
|
|
if ($type == "sara_setURL") {
|
|
$port=$_GET['port'];
|
|
$url=$_GET['url'];
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_setURL.py ' . $port . ' ' . $url;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
#TO WRITE MESSAGE TO MEMORY
|
|
if ($type == "sara_writeMessage") {
|
|
$port=$_GET['port'];
|
|
$message=$_GET['message'];
|
|
$message = escapeshellcmd($message);
|
|
$type2=$_GET['type2'];
|
|
|
|
if ($type2 === "write") {
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_writeMessage.py ' . $port . ' ' . $message;
|
|
$output = shell_exec($command);
|
|
}
|
|
if ($type2 === "read") {
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_readMessage.py ' . $port . ' ' . $message;
|
|
$output = shell_exec($command);
|
|
}
|
|
if ($type2 === "erase") {
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_eraseMessage.py ' . $port . ' ' . $message;
|
|
$output = shell_exec($command);
|
|
}
|
|
|
|
echo $output;
|
|
}
|
|
|
|
#Send the typed message to server (for ntfy notification)
|
|
if ($type == "sara_sendMessage") {
|
|
$port=$_GET['port'];
|
|
$endpoint=$_GET['endpoint'];
|
|
$endpoint = escapeshellcmd($endpoint);
|
|
$command = '/usr/bin/python3 /var/www/nebuleair_pro_4g/SARA/sara_sendMessage.py ' . $port . ' ' . $endpoint;
|
|
$output = shell_exec($command);
|
|
echo $output;
|
|
}
|
|
|
|
if ($type == "internet") {
|
|
//eth0
|
|
$command = 'nmcli -g GENERAL.STATE device show eth0';
|
|
$eth0_connStatus = shell_exec($command);
|
|
$eth0_connStatus = str_replace("\n", "", $eth0_connStatus);
|
|
$command = 'nmcli -g IP4.ADDRESS device show eth0';
|
|
$eth0_IPAddr = shell_exec($command);
|
|
$eth0_IPAddr = str_replace("\n", "", $eth0_IPAddr);
|
|
|
|
//wlan0
|
|
$command = 'nmcli -g GENERAL.STATE device show wlan0';
|
|
$wlan0_connStatus = shell_exec($command);
|
|
$wlan0_connStatus = str_replace("\n", "", $wlan0_connStatus);
|
|
$command = 'nmcli -g IP4.ADDRESS device show wlan0';
|
|
$wlan0_IPAddr = shell_exec($command);
|
|
$wlan0_IPAddr = str_replace("\n", "", $wlan0_IPAddr);
|
|
|
|
$data= array(
|
|
"ethernet" => array(
|
|
"connection" => $eth0_connStatus,
|
|
"IP" => $eth0_IPAddr
|
|
),
|
|
"wifi" => array(
|
|
"connection" => $wlan0_connStatus,
|
|
"IP" => $wlan0_IPAddr
|
|
)
|
|
);
|
|
$json_data = json_encode($data);
|
|
|
|
echo $json_data;
|
|
}
|
|
|
|
# IMPORTANT
|
|
# c'est ici que la connexion vers le WIFI du client s'effectue.
|
|
if ($type == "wifi_connect") {
|
|
$SSID=$_GET['SSID'];
|
|
$PASS=$_GET['pass'];
|
|
|
|
echo "will try to connect to </br>";
|
|
echo "SSID: " . $SSID;
|
|
echo "</br>";
|
|
echo "Password: " . $PASS;
|
|
echo "</br>";
|
|
echo "</br>";
|
|
|
|
echo "You will be disconnected. If connection is successfull you can find the device on your local network.";
|
|
|
|
$script_path = __DIR__ . '/connexion.sh';
|
|
$log_file = __DIR__ . '/logs/app.log';
|
|
shell_exec("$script_path $SSID $PASS >> $log_file 2>&1 &");
|
|
|
|
#$output = shell_exec('sudo nmcli connection down Hotspot');
|
|
#$output2 = shell_exec('sudo nmcli device wifi connect "AirLab" password "123plouf"');
|
|
|
|
}
|
|
|
|
|
|
if ($type == "wifi_scan") {
|
|
|
|
// Set the path to your CSV file
|
|
$csvFile = '/var/www/nebuleair_pro_4g/wifi_list.csv';
|
|
|
|
// Initialize an array to hold the JSON data
|
|
$jsonData = [];
|
|
|
|
// Open the CSV file for reading
|
|
if (($handle = fopen($csvFile, 'r')) !== false) {
|
|
// Get the headers from the first row
|
|
$headers = fgetcsv($handle);
|
|
|
|
// Loop through the rest of the rows
|
|
while (($row = fgetcsv($handle)) !== false) {
|
|
// Combine headers with row data to create an associative array
|
|
$jsonData[] = array_combine($headers, $row);
|
|
}
|
|
|
|
// Close the file handle
|
|
fclose($handle);
|
|
}
|
|
|
|
// Set the content type to JSON
|
|
header('Content-Type: application/json');
|
|
|
|
// Convert the array to JSON format and output it
|
|
echo json_encode($jsonData, JSON_PRETTY_PRINT);
|
|
|
|
|
|
}
|
|
|
|
if ($type == "wifi_scan_old") {
|
|
|
|
$output = shell_exec('nmcli device wifi list ifname wlan0');
|
|
// Split the output into lines
|
|
$lines = explode("\n", trim($output));
|
|
|
|
// Initialize an array to hold the results
|
|
$wifiNetworks = [];
|
|
|
|
// Loop through each line and extract the relevant information
|
|
foreach ($lines as $index => $line) {
|
|
// Skip the header line
|
|
if ($index === 0) {
|
|
continue;
|
|
}
|
|
|
|
// Split the line by whitespace and filter empty values
|
|
$columns = preg_split('/\s+/', $line);
|
|
|
|
// If the line has enough columns, store the relevant data
|
|
if (count($columns) >= 5) {
|
|
$wifiNetworks[] = [
|
|
'SSID' => $columns[2], // Network name
|
|
'BARS' => $columns[8],
|
|
'SIGNAL' => $columns[7], // Signal strength
|
|
|
|
];
|
|
}
|
|
}
|
|
$json_data = json_encode($wifiNetworks);
|
|
|
|
echo $json_data;
|
|
|
|
} |