ホームページ > php教程 > php手册 > サーバーポートが開いているかどうかを判断する PHP コード

サーバーポートが開いているかどうかを判断する PHP コード

WBOY
リリース: 2016-06-21 08:55:46
オリジナル
994 人が閲覧しました

今後の参考のために記録してください

<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><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><span class="tag-name">br</span><span> </span><span class="tag">/></span><span class="tag"><</span><span class="tag-name">br</span><span> </span><span class="tag">/></span><span>'."\r\n";  </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><span> $num;$i++)  </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 からの抜粋です




関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート