用python脚本简单测试局域网中的电脑是否连接通畅
上一篇 /
下一篇 2016-04-28 15:01:19
/ 个人分类:python
简单
测试局域网中的
电脑是否连接通畅?电脑ip的范围从192.168.0.101到192.168.0.200:
解决思路:用
shell编程(linux是bash而windows是批处理脚本):例如:在windows上用ping ip的命令依次测试各个机器并得到控制台输出,由于ping通的时候控制台文本通常事“reply from。。”而不通的时候文本是“time out...”,所以,在结果中进行字符串查找,即可知道机器是否连通:
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 BuffrReader(new InputStreamReader(p.getInputStream()));
while((line=reader.readline())!=null)
{
这里面的思路是:拿到什么区和文本比对,是rely的就是通了,而time out的就是不通
if line=''
}
reader.close();
p.destroy();
}
这段代码弄完了,但是为了去运行这个代码,还需要做些额外的
工作:
编写一个类文件
编写一个main方法
编译字节码
字节码不能直接运行,写个bat或者bash去运行
import subprocess
cmd ='cmd.exe'
begin=101
end=200
while begin<end:
p=subprocess.Popen(cmd,shell=True,stout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
p.stdin.write('ping 192.168.1.'+str(begin)+'\n')
p.stdin.close()
p.wait()
print'execution result:%s'%p.stout.read()
可以看到对比java,python的实现更简洁,不需要写main函数,程序保存了可以直接使用
比如:在操作本地文件时,我只需要一行代码,而不是java的许多包装流类,使用python去处理一些简短程序类似与
操作系统的交互编程最有用
收藏
举报
TAG:
Python
python
电脑
局域网