Ping Test App

This web app is used to ping a website or IP address. With this code we use shell_exec() function with a preformatted command and then feed it the value for the website/ IP address. This allows users the ability to gain the power of OS commands, but limits what they are able to do.

Code Explanation:

Line 3-6 – Create an HTML form to accept the domain name or IP address, and POST this value back to this page

Line 10 – Turn the value from the form into the variable value for $command

Line 12 – Concatonate the value of $command with the ping command and assign this new value to $command. Notice we limit the ping count to only 1 using -c 1 . In linux the default for ping is to continuously run. Since shell_exec() only returns a value when a command ends then if you do not set a limit the ping will never end and the App will lock up.

Line 14 – Assigns the results from shell_exec() to $result.

Line 16 – Prints out the value from the ping in $result within <pre> tags. Shell_exec() returns text formatted for a text file. Without the <pre> tags $result will be printed as a line of text.

<h1>Ping App</h1>

<form action="ping.php" method="post">
    <input type="text" name="command">
    <input type="submit">
</form>

<?php

$command = $_POST['command'];

$command = "ping -c 1 $command";

$result = shell_exec($command);

echo "<pre>$result</pre>";

?>
Code language: HTML, XML (xml)