您的位置:首页 > 编程语言 > Python开发

python脚本测试局域网中的电脑是否连通

2016-05-11 10:34 786 查看
import subprocesscmd="cmd.exe"begin=101end=200pingIP = 'ping 192.168.0.'while begin<end:p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)p.stdin.write(bytes(pingIP+str(begin)+"\n", encoding = "utf8"))begin = begin+1p.stdin.close()p.wait()print ("ecution result: %s"%p.stdout.read())
实现:java代码实现如下:
String cmd="cmd.exe ping ";String ipprefix="192.168.10.";int begin=101;int end=200;Process p=null;for(int i=begin;i<end;i++){p= Runtime.getRuntime().exec(cmd+i);String line = null;BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));while((line = reader.readLine()) != null){//Handling line , may logs it.}reader.close();p.destroy();}
 这段代码运行得很好,问题是为了运行这段代码,你还需要做一些额外的工作.这些额外的工作包括:编写一个类文件编写一个main方法将之编译成字节代码由于字节代码不能直接运行,你需要再写个小小的bat或者bash脚本来运行.      当然,用C/C++同样能完成这项工作.但C/C++不是跨平台语言.在这个足够简单的例子中也许看不出C/C++和Java实现的区别,但在一些更为复杂的场景,比如要将连通与否的信息记录到网络数据库.由于Linux和Windows的网络接口实现方式不同,你不得不写两个函数的版本.用Java就没有这样的顾虑.      对比Java,Python的实现更为简洁,你编写的时间更快.你不需要写main函数,并且这个程序保存之后可以直接运行.另外,和Java一样,Python也是跨平台的.      有经验的C/Java程序员可能会争论说用C/Java写会比Python写得快.这个观点见仁见智.我的想法是当你同时掌握Java和Python之后,你会发现用Python写这类程序的速度会比Java快上许多.例如操作本地文件时你仅需要一行代码而不需要Java的许多流包装类.各种语言有其天然的适合的应用范围.用Python处理一些简短程序类似与操作系统的交互编程工作最省时省力.原文链接:http://www.jb51.net/article/926.htm备注:原文作者python用的是2.5.4版本
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息