python实现ping
❶ python 判断ip是否能ping通
python编程下,检查IP是否能ping通,并且分别导入两个文件,代码如下:
#!/usr/bin/python
#-*- coding:gb18030 -*-
'''
Created on 2015-7-7
#判断文件中的ip是否能ping通,并且将通与不通的ip分别写到两个文件中
#文件中的ip一行一个
'''
import time,os
start_Time=int(time.time()) #记录开始时间
def ping_Test():
ips=open('host.txt','r')
ip_True = open('ip_True.txt','w')
ip_False = open('ip_False.txt','w')
count_True,count_False=0,0
for ip in ips.readlines():
ip = ip.replace('\n','') #替换掉换行符
return1=os.system('ping -n 2 -w 1 %s'%ip) #每个ip ping2次,等待时间为1s
if return1:
print 'ping %s is fail'%ip
ip_False.write(ip) #把ping不通的写到ip_False.txt中
count_False += 1
else:
print 'ping %s is ok'%ip
ip_True.write(ip) #把ping通的ip写到ip_True.txt中
count_True += 1
ip_True.close()
ip_False.close()
ips.close()
end_Time = int(time.time()) #记录结束时间
print "time(秒):",end_Time - start_Time,"s" #打印并计算用的时间
print "ping通数:",count_True," ping不通的ip数:",count_False
ping_Test()
❷ python3 判断IP地址是否ping通
os.system(‘comand’) 会执行括号中的命令,如果命令成功执行,这条语句返回0,否则返回1。
要想得到标准输出,可以使用os.popen(cmd)
import os
p=os.popen("ping 192.168.2.129")
x=p.read()
p.close()
if x.count('temeout'):
print("ping不通")
else:
print("ping通了")
❸ 使用Python tkinter模块实现ip ping测试
tkinter 动态修改label或者button等控件的文本...label或者button没有setText或者set这样的函数。
❹ python新人一枚,求教如何随机只ping两次而不循环完整个列表.谢谢
#coding='utf-8'
importos,sys
#引用这个
fromrandomimportsample
truelist=[]
falselist=[]
IP=['192.168.1.1','192.168.0.1','192.168.1.2']
#随机取2个数组
foriinsample(IP,2):
ping=os.system('ping-c3%s'%i)
ifping:
falselist.append(i)
else:
truelist.append(i)
print('truelist:'+str(truelist))
print('falselist:'+str(falselist))
❺ python 怎样去编写一个ping wwww.baidu.com -n 8就是ping之后能带参数的
其实在pip是有一个叫做的ping的项目的,何必折腾自己呢?安装好了后,可以这样简单使用即可,
importping
ping.verbose_ping(dest_addr,timeout=2,count=4,psize=64)
另外如果要实现更复杂的东西,还有很多更底层的函数方便你使用。
❻ python 检查IP是否能ping通,并且分别导入两个文件
python编程下,检查IP是否能ping通,并且分别导入两个文件,代码如下:
#!/usr/bin/python
#-*-coding:gb18030-*-
'''
Createdon2015-7-7
#判断文件中的ip是否能ping通,并且将通与不通的ip分别写到两个文件中
#文件中的ip一行一个
'''
importtime,os
start_Time=int(time.time())#记录开始时间
defping_Test():
ips=open('host.txt','r')
ip_True=open('ip_True.txt','w')
ip_False=open('ip_False.txt','w')
count_True,count_False=0,0
foripinips.readlines():
ip=ip.replace(' ','')#替换掉换行符
return1=os.system('ping-n2-w1%s'%ip)#每个ipping2次,等待时间为1s
ifreturn1:
print'ping%sisfail'%ip
ip_False.write(ip)#把ping不通的写到ip_False.txt中
count_False+=1
else:
print'ping%sisok'%ip
ip_True.write(ip)#把ping通的ip写到ip_True.txt中
count_True+=1
ip_True.close()
ip_False.close()
ips.close()
end_Time=int(time.time())#记录结束时间
print"time(秒):",end_Time-start_Time,"s"#打印并计算用的时间
print"ping通数:",count_True,"ping不通的ip数:",count_False
ping_Test()
❼ 怎样使用python来ping
importos
importre
importtime
importsys
importsubprocess
lifeline=re.compile(r"(d)received")
report=("Noresponse","PartialResponse","Alive")
printtime.ctime()
forhostinrange(1,10):
ip="192.168.1."+str(host)
pingaling=subprocess.Popen(["ping","-q","-c2","-r",ip],shell=False,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
print"Testing",ip,
while1:
pingaling.stdout.flush()
line=pingaling.stdout.readline()
ifnotline:break
igot=re.findall(lifeline,line)
ifigot:
printreport[int(igot[0])]
printtime.ctime()
❽ 怎么样在python多线程实现检测服务器
需要ping一个网段所有机器的在线情况,shell脚步运行时间太长,用python写个多线程ping吧,代码如下:
#!/usr/bin/python
#coding=utf-8
'''
Created on 2015-8-4
@author: Administrator
'''
import threading,subprocess
from time import ctime,sleep,time
import Queue
queue=Queue.Queue()
class ThreadUrl(threading.Thread):
def __init__(self,queue):
threading.Thread.__init__(self)
self.queue=queue
def run(self):
while True:
host=self.queue.get()
ret=subprocess.call('ping -c 1 -w 1 '+host,shell=True,stdout=open('/dev/null','w'))
if ret:
print "%s is down" % host
else:
print "%s is up" % host
self.queue.task_done()
def main():
for i in range(100):
t=ThreadUrl(queue)
t.setDaemon(True)
t.start()
for host in b:
queue.put(host)
queue.join()
a=[]
with open('ip.txt') as f:
for line in f.readlines():
a.append(line.split()[0])
#print a
b=['192.168.3.'+str(x) for x in range(1,254)] #ping 192.168.3 网段
start=time()
main()
print "Elasped Time:%s" % (time()-start)
#t2=threading.Thread(target=move,args=('fff',))
#threads.append(t2)
'''
for i in a:
print ctime()
ping(i)
sleep(1)
if __name__ == '__main__':
for t in range(len(a)):
#t.setDaemon(True)
threads[t].start()
#t.join()
print "All over %s" % ctime()
'''