本文实例讲述了php实现的ping端口函数。分享给大家供大家参考。
具体实现代码如下:
<?php /* * @author xujiajay * @date 2010-10-7 * @function 可以ping端口的php函数 * */ error_reporting(E_ERROR); header("content-Type: text/html; charset=utf-8"); set_time_limit(120); $host = isset($_POST['url']) ? chop(str_replace('http://','',$_POST['url'])) : 'www.baidu.com'; $port = isset($_POST['duankou']) ? chop($_POST['duankou']) : '80'; $num = 10; function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function getsoft($host,$port) { $fp = @fsockopen($host,$port,&$errno,&$errstr,3); if(!$fp) return 'unknown'; $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n"; @fputs($fp,$get); $data = ''; while ($fp && !feof($fp)) $data .= fread($fp, 1024); @fclose($fp); $array = explode("\n",$data); $k = 2; for($i = 0;$i < 20;$i++) { if(stristr($array[$i],'Server')){$k = $i; break;} } if(!stristr($array[$k],'Server')) return 'unknown'; else return str_replace('Server','服务器软件',$array[$k]); } function ping($host,$port) { $time_start = microtime_float(); $ip = gethostbyname($host); $fp = @fsockopen($host,$port,&$errno,&$errstr,1); if(!$fp) return 'Request timed out.'."\r\n"; $get = "GET / HTTP/1.1\r\nHost:".$host."\r\nConnection: Close\r\n\r\n"; @fputs($fp,$get); @fclose($fp); $time_end = microtime_float(); $time = $time_end - $time_start; $time = ceil($time * 1000); return 'Reply from '.$ip.': time='.$time.'ms'; } if(isset($_POST['url']) && isset($_POST['duankou'])) { echo '<font color="#FF0000">'.getsoft($host,$port).'</font>'; echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:'."\r\n"; ob_flush(); flush(); for($i = 0;$i < $num;$i++) { echo ping($host,$port); ob_flush(); flush(); sleep(1); } } ?> <form method="POST"> 域名/IP:<input type="text" name="url" value="<?php echo $host;?>" size="50"> 端口:<input type="text" name="duankou" value="<?php echo $port;?>" size="10"> <input type="submit" value="ping"> </form>
希望本文所述对大家的PHP程序设计有所帮助。
本文向大家介绍PHP实现的oracle分页函数实例,包括了PHP实现的oracle分页函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的oracle分页函数。分享给大家供大家参考,具体如下: mysql有limit,分页的时候,我们可以用limit 30,40,而oracle没有limit,用其他的方法来代替--rownum. 一、底层方法 主要二个方法我写一点注释 二、
本文向大家介绍基于JS实现PHP的sprintf函数实例,包括了基于JS实现PHP的sprintf函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了基于JS实现PHP的sprintf函数。分享给大家供大家参考,具体如下: 函数如下: 第一个参数是包含的“%s”的字符串,其他参数是对应的用来替换“%s”的变量。 如: 希望本文所述对大家JavaScript程序设计有所帮助。
本文向大家介绍PHP 获取 ping 时间的实现方法,包括了PHP 获取 ping 时间的实现方法的使用技巧和注意事项,需要的朋友参考一下 PHP 可以通过exec函数执行shell命令,来获取ping时间。 代码示例: 运行结果: I am linux linux info : Array ( [0] => PING 115.29.237.28 (115.29.237.28) 56(84) by
本文向大家介绍python基于socket函数实现端口扫描,包括了python基于socket函数实现端口扫描的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python基于socket实现端口扫描的具体代码,供大家参考,具体内容如下 自学Python一段时间,写个端口扫描器练练手。有什么不足之处,请见谅 这是基于socket函数对端口进行端口扫描 所以,首先要导入socket模块
本文向大家介绍JavaScript中实现PHP的打乱数组函数shuffle实例,包括了JavaScript中实现PHP的打乱数组函数shuffle实例的使用技巧和注意事项,需要的朋友参考一下 PHP 里面有个非常方便的打乱数组的函数 shuffle() ,这个功能在许多情况下都会用到,但 javascript 的数组却没有这个方法,没有不要紧,可以扩展一个,自己动手,丰衣足食嘛。 请刷新页面查看随
本文向大家介绍PHP利用func_get_args和func_num_args函数实现函数重载实例,包括了PHP利用func_get_args和func_num_args函数实现函数重载实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP利用func_get_args和func_num_args函数实现函数重载的方法。分享给大家供大家参考。具体方法分析如下: 学习php的朋友都知道p