使用PHP自动PING IP,校检网络连接是否正常!

  1. <?php
  2. $server = 'ping kalvin.cn -n 1';
  3. $last_line = exec($server, $arr);
  4. echo "$last_line"; //最后总结结果
  5. print_r($arr); //PING命令详细数据数组
  6. ?>

国外一位大师使用Sockets Ping,似乎效率更高:

PHP代码
  1. <?php
  2. // Checksum calculation function
  3. function icmpChecksum($data)
  4. {
  5. if (strlen($data)%2)
  6. $data .= "/x00";
  7. $bit = unpack('n*', $data);
  8. $sum = array_sum($bit);
  9. while ($sum >> 16)
  10. $sum = ($sum >> 16) + ($sum & 0xffff);
  11. return pack('n*', ~$sum);
  12. }
  13. // Making the package
  14. $type= "/x08";
  15. $code= "/x00";
  16. $checksum= "/x00/x00";
  17. $identifier = "/x00/x00";
  18. $seqNumber = "/x00/x00";
  19. $data= "Scarface";
  20. $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
  21. $checksum = icmpChecksum($package); // Calculate the checksum
  22. $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
  23. // And off to the sockets
  24. $socket = socket_create(AF_INET, SOCK_RAW, 1);
  25. socket_connect($socket, "www.google.com", null);
  26. // If you're using below PHP 5, see the manual for the microtime_float
  27. // function. Instead of just using the m
  28. //     icrotime() function.
  29. $startTime = microtime(true);
  30. socket_send($socket, $package, strLen($package), 0);
  31. if (socket_read($socket, 255)) {
  32. echo round(microtime(true) - $startTime, 4) .' seconds';
  33. }
  34. socket_close($socket);
  35. ?>

转自http://blog.csdn.net/gumanren/article/details/5752394

试用php的ping命令的更多相关文章

  1. [服务器]脚本:批处理带参数ping命令 发送邮件脚本

    1.批处理带参数ping命令 @echo offecho Input you IP address ......set /p IP=echo Your IP number is %IP%.ping % ...

  2. Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决

    Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools       # ifconfig apt ...

  3. windows 环境和linux环境下 ping命令的区别:

    Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...

  4. ping命令执行过程详解

    [TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...

  5. ping命令脚本实现显示网络状态、学生姓名、学号

    #!/bin/bash a=. ####定义一个固定变量 h=(wanghao xieyunshen 刘桃) ####定义数组 ..} ####for循环,后面的in是条件即从多少循环到多少 do # ...

  6. [小菜随笔]python tkinter实现简单的ping命令

    本文主要是介绍python图形界面上的按键与实际功能的对接,其实编程掌握了基础之后的学习应该都是靠自己去挖掘其他的 在网上发现多半教程都是2的,故本文使用的是python3.5,其实也没什么区别,就有 ...

  7. cmd中用PING命令时,出现'Ping' 不是内部或外部命令 解决方案

    在cmd中用PING命令时,出现'Ping' 不是内部或外部命令,也不是可运行的程序或批处理文件.先了解一下内容:1.可执行文件.命令文件和批处理文件以.exe或者.com或者.bat为扩展名的文件分 ...

  8. ping命令

    ping命令能够用于判断一个主机是否可达或者是否存活.它的工作原理就像潜水艇的探测原理一样.该命令通过向目标计算机发送一个数据包,请求目标计算机回送该数据包以表明自己还存活着.同时该命令还能够知道数据 ...

  9. 每天一个linux命令(54):ping命令

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ...

随机推荐

  1. Caffe FCN:可视化featureMaps和Weights(C++)、获取FCN结果

    为何不使用C++版本FCN获取最后的分割掩模,何必要使用python呢!因此需要获取网络最后层的featureMaps,featureMaps的结果直接对应了segmentation的最终结果,可以直 ...

  2. C#使用Win32函数的一些类型转换

    C#在访问Win 32 Api时需要处理C 结构与C#结构的映射,这在MSDN以及许多Blog上都可以找到参考的资料.Win 32 中有一些定义复杂的Struct,这些结构体拥有长度固定的数组或者一些 ...

  3. bat配置JDK环境变量

    最近总是部署服务器,总是要安装配置JDK,今天就想写个bat来配置JDK的环境变量,首先介绍点bat的小知识 @符号后面的命令不会显示在terminal上 例如: @echo运行时 隐藏命令(不在te ...

  4. DDX DDV 用法

    DDX:Dialog Data Exchange 如果使用DDX机制,一般会在OnInitDialog消息处理函数或Dialog构造函数中,为对话框对象的成员变量设置了初始值.在对话框显示前,框架的D ...

  5. 零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧

    云计算概念一旦产生便一发不可收拾,成为移动互联网时代最为火热的行业之一.国内各大互联网公司例如阿里.腾讯.百度.网易等纷纷推出自己的云计算产品,3月10日,腾讯云0.01元投标时间更是让云计算在普罗大 ...

  6. snprintf不能使用"字符串指针"赋值,可以使用字符数组

    #cat snprintf.c #include <stdio.h> #include <stdlib.h> #include <string.h> struct ...

  7. 洛谷 P1943 LocalMaxima_NOI导刊2009提高(1)

    我们先考虑第i大数,比它大的数有(n-i)个,显然要使i是Local Maxima,比它大的数必须放在它后面,那么它是Local Maxima的期望是: 那么n个数中Local Maxima个数的期望 ...

  8. Codeforces 918C/917A - The Monster

    传送门:http://codeforces.com/contest/918/problem/C 一个括弧串由字符‘(’和‘)’组成.一个正确的串可被递归地定义,定义如下: ①空串e是一个正确的串: ② ...

  9. noip模拟赛 钻石

    分析:用裸暴力可以得60分,每次dfs,看第i个盒子到底有没有钻石就行了.其实这很像0/1背包问题,只是多了一个m的限制.这要怎么办呢?因为概率是可以加减的,所以可以先不考虑m的限制,求出概率,然后d ...

  10. fzu 2124

    #include<stdio.h> #include<queue> #include<math.h> #include<algorithm> #incl ...