<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title>Ping an IP address</title>
<link rel="stylesheet" href="../media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<h1>Ping an IP address</h1>
<div class="listing">
<div class="src-code"><ol><li><div class="src-line">#!/usr/local/bin/php -q</div></li>
<li><div class="src-line"><span class="src-php"><?php</span></div></li>
<li><div class="src-line"> <a href="http://www.php.net/set_time_limit">set_time_limit</a><span class="src-sym">(</span><span class="src-num">0</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> require<span class="src-sym">(</span><span class="src-str">'phpagi.php'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-var">$agi </span>= <span class="src-key">new </span><span class="src-id"><a href="../phpAGI/AGI.html">AGI</a></span><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodanswer">answer</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-comm">// Play the "Enter the host you wish to ping, followed by the pound sign" prompt</span></div></li>
<li><div class="src-line"> <span class="src-comm">// and then play the beep. </span></div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodstream_file">stream_file</a><span class="src-sym">(</span><span class="src-str">'ping'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-var">$result </span>= <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodget_data">get_data</a><span class="src-sym">(</span><span class="src-str">'beep'</span><span class="src-sym">, </span><span class="src-num">3000</span><span class="src-sym">, </span><span class="src-num">20</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-var">$ip </span>= <a href="http://www.php.net/str_replace">str_replace</a><span class="src-sym">(</span><span class="src-str">'*'</span><span class="src-sym">, </span><span class="src-str">'.'</span><span class="src-sym">, </span><span class="src-var">$result</span><span class="src-sym">[</span><span class="src-str">'result'</span><span class="src-sym">]</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-comm">/* Danger Will Robinson! This does NOT properly escape the ping command!</span></div></li>
<li><div class="src-line"><span class="src-comm"> * Someone could subvert your system if you don't fix this! - NO WARRANTY :P */</span></div></li>
<li><div class="src-line"> <span class="src-var">$execstr </span>= <span class="src-str">"</span><span class="src-str">/bin/ping -c 5 -q -w 9 <span class="src-var">$ip</span>|grep transmitted</span><span class="src-str">"</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-comm">// be polite.</span></div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodstream_file">stream_file</a><span class="src-sym">(</span><span class="src-str">'thanks'</span><span class="src-sym">, </span><span class="src-str">'#'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-var">$p </span>= <a href="http://www.php.net/popen">popen</a><span class="src-sym">(</span><span class="src-var">$execstr</span><span class="src-sym">, </span><span class="src-str">'r'</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-key">if</span><span class="src-sym">(</span><span class="src-var">$p </span>== <span class="src-id">FALSE</span><span class="src-sym">)</span></div></li>
<li><div class="src-line"> <span class="src-sym">{</span></div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodtext2wav">text2wav</a><span class="src-sym">(</span><span class="src-str">"</span><span class="src-str">Failed to ping <span class="src-var">$ip</span></span><span class="src-str">"</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodconlog">conlog</a><span class="src-sym">(</span><span class="src-str">"</span><span class="src-str">Failed to ping <span class="src-var">$execstr</span></span><span class="src-str">"</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-sym">}</span></div></li>
<li><div class="src-line"> <span class="src-key">else</span></div></li>
<li><div class="src-line"> <span class="src-sym">{</span></div></li>
<li><div class="src-line"> <span class="src-var">$str </span>= <span class="src-str">''</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-key">while</span><span class="src-sym">(</span><span class="src-sym">!</span><a href="http://www.php.net/feof">feof</a><span class="src-sym">(</span><span class="src-var">$p</span><span class="src-sym">))</span></div></li>
<li><div class="src-line"> <span class="src-sym">{</span></div></li>
<li><div class="src-line"> <span class="src-var">$r </span>= <a href="http://www.php.net/fgets">fgets</a><span class="src-sym">(</span><span class="src-var">$p</span><span class="src-sym">, </span><span class="src-num">1024</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-key">if</span><span class="src-sym">(</span><span class="src-sym">!</span><span class="src-var">$r</span><span class="src-sym">) </span><span class="src-key">break</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-var">$str </span>.= <span class="src-var">$r</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-sym">}</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-comm">// a minor hack.</span></div></li>
<li><div class="src-line"> <span class="src-var">$str </span>= <a href="http://www.php.net/str_replace">str_replace</a><span class="src-sym">(</span><span class="src-str">'ms'</span><span class="src-sym">, </span><span class="src-str">'milli-seconds'</span><span class="src-sym">, </span><span class="src-var">$str</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-comm">// have festival read back the ping results.</span></div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodtext2wav">text2wav</a><span class="src-sym">(</span><span class="src-str">"</span><span class="src-str"><span class="src-var">$ip</span> - <span class="src-var">$str</span></span><span class="src-str">"</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"> <span class="src-sym">}</span></div></li>
<li><div class="src-line"> </div></li>
<li><div class="src-line"> <span class="src-var">$agi</span><span class="src-sym">-></span><a href="../phpAGI/AGI.html#methodhangup">hangup</a><span class="src-sym">(</span><span class="src-sym">)</span><span class="src-sym">;</span></div></li>
<li><div class="src-line"><span class="src-php">?></span></div></li>
</ol></div>
</div>
<p class="notes" id="credit">
Documentation generated on Thu, 30 Sep 2010 02:22:03 -0700 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.2</a>
</p>
</body>
</html>