0
点赞
收藏
分享

微信扫一扫

Shell和Python实现网络ping功能

橙子好吃吗 2021-09-23 阅读 44

    本文使用Shell和Python两个方式来实现ping网络中的主机。Shell脚本可以快速的解决问题,但是Python可以解决复杂的问题,所以重点放在Python上面。

    以下的代码请到笔者的github上查看。

   Python: laufei90/python: Some Python scripts (github.com)

    Shell:laufei90/shells: Some shell scripts (github.com)

一、Shell脚本实现网络ping功能

1、简单实现,将主机地址保存在ips.txt中(换行和空格都行),通过cat命令读取文件中ip,使用for循环迭代执行ping命令。

2、在是一个基础上增加-w延时控制timeout,提示程序执行速度。需要注意的是如果你需要将ping那一行代码在命令行测试一下,确实是中文“已接受”还是英文的“received”,同时接收到的包个数的位置可能也有些许不同,笔者的centos是第四,ubutnu是第五。

    对比一下执行速度。第二个有延时控制的速度有明显的提升,这在设置程序时有很大的用处。

二、Python实现网络ping功能

1、Python使用并发加快程序执行效率。

    笔者使用了很多IP地址,并发执行时间1.1秒,如果使用shell脚本来顺序执行,那么就需要1秒乘以ip数量。Python并发执行效果明显,而且实现起来也很简单。

2、使用生产者消费者模型限制线程数量

    在ip数量较多时,使用queue来缓冲减少线程数量,比如下面的就是限制到10个线程。运行查看效果输出其实是10个为单位输出,运行时间3.1秒,较没有限制线程多,但是更加安全。

举报

相关推荐

0 条评论