现有的部分仓库或实现方法不支持Windows操作系统,本仓库基于两种方法实现了ping功能,支持跨平台,请按自己需要选择相应实现和接口应用到你自己的项目中。
-
创建原始socket发送ICMP请求,根据相应回复判断网络结果,此方法参考了作者sryze的实现方法,封装了相应函数接口,具体可以通过点击此处链接查看原仓库。
-
基于命令行ping功能实现,通过创建ping命令,指定参数并重定向到空文件,根据返回结果判断网络连通性。注意此方法接口为传入多个ip地址,为每个ip地址新建一个线程执行相应判断。
- Windows
- Linux
- macOS(待测试)
-
方法1在linux系统上成功运行需要具备root权限,或通过命令赋予程序创建原始socket权限,具体请自己搜索。
-
方法2需要确保该平台上默认支持command ping,部分linux发行版系统上可能默认不会支持,需要安装。