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()
'''