Maison >php教程 >php手册 >PHP判断服务器端口是否打开的代码

PHP判断服务器端口是否打开的代码

WBOY
WBOYoriginal
2016-06-21 08:55:46992parcourir

记录一下,以后备用

<ol class="dp-xml">
<li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li>
<li>
<span>$</span><span class="attribute">host</span><span> = </span><span class="attribute-value">'www.google.com'</span><span>; //要ping的地址,也可以是IP  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">port</span><span> = </span><span class="attribute-value">'80'</span><span>; //要ping的端口  </span>
</li>
<li>
<span>$</span><span class="attribute">num</span><span> = </span><span class="attribute-value">3</span><span>;  </span>
</li>
<li class="alt"><span>function microtime_float()  </span></li>
<li><span>{  </span></li>
<li class="alt"><span>list($usec, $sec) = explode(" ", microtime());  </span></li>
<li><span>return ((float)$usec + (float)$sec);  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>function ping($host,$port)  </span></li>
<li class="alt"><span>{  </span></li>
<li>
<span>$</span><span class="attribute">time_start</span><span> = </span><span class="attribute-value">microtime_float</span><span>();  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">ip</span><span> = </span><span class="attribute-value">gethostbyname</span><span>($host);  </span>
</li>
<li>
<span>$</span><span class="attribute">fp</span><span> = @fsockopen($host,$port,&$errno,&$errstr,1);  </span>
</li>
<li class="alt"><span>if(!$fp) return 'replay time out!';  </span></li>
<li>
<span>$</span><span class="attribute">get</span><span> = </span><span class="attribute-value">"GET / HTTP/1.1\r\nHost:"</span><span>.$host."\r\nConnection: Close\r\n\r\n";  </span>
</li>
<li class="alt"><span>@fputs($fp,$get);  </span></li>
<li><span>@fclose($fp);  </span></li>
<li class="alt">
<span>$</span><span class="attribute">time_end</span><span> = </span><span class="attribute-value">microtime_float</span><span>();  </span>
</li>
<li>
<span>$</span><span class="attribute">time</span><span> = $time_end - $time_start;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">time</span><span> = </span><span class="attribute-value">ceil</span><span>($time * 1000);  </span>
</li>
<li>
<span>return 'Reply from '.$ip.': </span><span class="attribute">time</span><span>='.$time.'</span><span class="attribute-value">ms</span><span class="tag"><span class="tag-name">br</span><span> </span><span class="tag">/></span><span>';  </span></span>
</li>
<li class="alt"><span>}  </span></li>
<li>
<span>echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:</span><span class="tag"><span class="tag-name">br</span><span> </span><span class="tag">/></span><span class="tag"><span class="tag-name">br</span><span> </span><span class="tag">/></span><span>'."\r\n";  </span></span></span>
</li>
<li class="alt">
<span>for($</span><span class="attribute">i</span><span> = </span><span class="attribute-value">0</span><span>;$i </span><span class="tag"><span> $num;$i++)  </span></span>
</li>
<li><span>{  </span></li>
<li class="alt"><span>ping($host,$port);  </span></li>
<li><span>sleep(1);  </span></li>
<li class="alt"><span>ob_flush();  </span></li>
<li><span>flush();  </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

本文摘自 http://www.cnblogs.com/luoine/archive/2010/12/01/1893156.html




Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn