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

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

WBOY
WBOYOriginal
2016-06-21 08:55:46993browse

记录一下,以后备用

<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




Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn