试用php的ping命令
使用PHP自动PING IP,校检网络连接是否正常!
- <?php
- $server = 'ping kalvin.cn -n 1';
- $last_line = exec($server, $arr);
- echo "$last_line"; //最后总结结果
- print_r($arr); //PING命令详细数据数组
- ?>
国外一位大师使用Sockets Ping,似乎效率更高:
- <?php
- // Checksum calculation function
- function icmpChecksum($data)
- {
- if (strlen($data)%2)
- $data .= "/x00";
- $bit = unpack('n*', $data);
- $sum = array_sum($bit);
- while ($sum >> 16)
- $sum = ($sum >> 16) + ($sum & 0xffff);
- return pack('n*', ~$sum);
- }
- // Making the package
- $type= "/x08";
- $code= "/x00";
- $checksum= "/x00/x00";
- $identifier = "/x00/x00";
- $seqNumber = "/x00/x00";
- $data= "Scarface";
- $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
- $checksum = icmpChecksum($package); // Calculate the checksum
- $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
- // And off to the sockets
- $socket = socket_create(AF_INET, SOCK_RAW, 1);
- socket_connect($socket, "www.google.com", null);
- // If you're using below PHP 5, see the manual for the microtime_float
- // function. Instead of just using the m
- // icrotime() function.
- $startTime = microtime(true);
- socket_send($socket, $package, strLen($package), 0);
- if (socket_read($socket, 255)) {
- echo round(microtime(true) - $startTime, 4) .' seconds';
- }
- socket_close($socket);
- ?>
转自http://blog.csdn.net/gumanren/article/details/5752394
试用php的ping命令的更多相关文章
- [服务器]脚本:批处理带参数ping命令 发送邮件脚本
1.批处理带参数ping命令 @echo offecho Input you IP address ......set /p IP=echo Your IP number is %IP%.ping % ...
- Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决
Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools # ifconfig apt ...
- windows 环境和linux环境下 ping命令的区别:
Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...
- ping命令执行过程详解
[TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...
- ping命令脚本实现显示网络状态、学生姓名、学号
#!/bin/bash a=. ####定义一个固定变量 h=(wanghao xieyunshen 刘桃) ####定义数组 ..} ####for循环,后面的in是条件即从多少循环到多少 do # ...
- [小菜随笔]python tkinter实现简单的ping命令
本文主要是介绍python图形界面上的按键与实际功能的对接,其实编程掌握了基础之后的学习应该都是靠自己去挖掘其他的 在网上发现多半教程都是2的,故本文使用的是python3.5,其实也没什么区别,就有 ...
- cmd中用PING命令时,出现'Ping' 不是内部或外部命令 解决方案
在cmd中用PING命令时,出现'Ping' 不是内部或外部命令,也不是可运行的程序或批处理文件.先了解一下内容:1.可执行文件.命令文件和批处理文件以.exe或者.com或者.bat为扩展名的文件分 ...
- ping命令
ping命令能够用于判断一个主机是否可达或者是否存活.它的工作原理就像潜水艇的探测原理一样.该命令通过向目标计算机发送一个数据包,请求目标计算机回送该数据包以表明自己还存活着.同时该命令还能够知道数据 ...
- 每天一个linux命令(54):ping命令
Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...
随机推荐
- 四次挥手与tcp标志位
鉴于tcp的标志位可以同时置位,在相应端无数据传输时,四次握手可以用三次报文完成.
- JDK升级
保存jboss运行时环境的配置 删除jboss下面的缓存文件 删除deployments里面的war包 重新build项目
- CAD在网页绘一个直线,得到直线id,再调该得到直线对象,然写扩展数据
IMxDrawDatabase::ObjectIdToObject 实体id返回实体对象. 参数 说明 [in] LONGLONG lId 实体id JS代码,中绘一个直线,得到直线id,再调该得到直 ...
- HTML5易漏知识点锦集
本文通过对w3schoolHTML5基础教程,整理出比较常见的却又容易遗忘或者忽略的HTML5相关知识点.本文的标题顺序与w3school中的HTML5基础教程标题顺序保持一致.适合翻阅和复习. 1. ...
- jquery 实现 单选框点击取消
<label for="1" class="z-label"> <input type="radio" class=&qu ...
- G. I love Codeforces
G. I love Codeforces 题目大意:给你n个字符串,以及m个喜欢关系,如果u喜欢v,这时候u会把它的用户名改为 I_love_ 加上v当时的用户名 Examples input 5an ...
- 【Codeforces 467C】George and Job
[链接] 我是链接,点我呀:) [题意] 让你从1..n这n个数字中 选出来k个不相交的长度为m的区间 然后这个k个区间的和最大 求出这k个区间的和的最大值 [题解] 设dp[i][j]表示前i个数字 ...
- Wizard's Tour
F. Wizard's Tour time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- [bzoj3697]采药人的路径_点分治
采药人的路径 bzoj-3697 题目大意:给你一个n个节点的树,每条边分为阴性和阳性,求满足条件的链的个数,使得这条链上阴性的边的条数等于阳性的边的条数,且这条链上存在一个节点,这个节点到一个端点的 ...
- java获取类名不包括路径
class.getSimpleName(),就能获得仅仅的类名 class.getName()获得的是全路径的类名