當前位置:首頁 » 網站資訊 » python如何測試網站通不通
擴展閱讀
網路共享耗費流量嗎 2025-09-21 23:24:27
如何利用好手機與網路 2025-09-21 23:18:49

python如何測試網站通不通

發布時間: 2022-09-26 20:35:26

Ⅰ 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如何批量同時檢測網址可用性

多線程,目前的運行時間是由網路返回時間決定的,如果你訪問的網址不是來自一個網址,沒有並發訪問數限制,就可以用多線程來提高同時訪問的網址數,運行總時間就不是一個串聯關系了。不會的話網路一下學習一下就OK了。

Ⅲ 如何用Python實現實時的網路連接檢測

如果你用的socket包里的那些阻塞介面,當然寫個線程循環監測時間也沒啥,只不過記得在循環內加上個sleep,哪怕是1ms甚至1us的sleep都可以避免CPU被消耗干凈。

如果你所說的接收是死循環式里跑socket.recv,它會在recv里阻塞,按你的說法3分鍾一個心跳包,時間檢測就成了3分鍾一次,不太合適。

更好的辦法自然是通過epoll/poll之類的方式或者asyncio/twisted/tornado之類的非同步回調/協程加時間事件甚至是各種GUI框架的事件循環來啟動你的發送和接收。考慮到以後可能有多設備,顯然利用這些成型的玩意更合理。

Ⅳ 如何用python檢測網站可用性

前言
隨著站點的增多,管理復雜性也上來了,俗話說:人多了不好帶,我發現站點多了也不好管,因為這些站點里有重要的也有不重要的,重要核心的站點當然就管理的多一些,像一些萬年都不出一次問題的,慢慢就被自己都淡忘了,冷不丁那天出個問題,還的手忙腳亂的去緊急處理,所以規范的去管理這些站點是很有必要的,今天我們就做第一步,不管大站小站,先統一把監控做起來,先不說業務情況,最起碼那個站點不能訪問了,要第一時間報出來,別等著業務方給你反饋,就顯得我們不夠專業了,那接下來我們看看如果用python實現多網站的可用性監控,腳本如下:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

#!/usr/bin/env python

import pickle, os, sys, logging
from httplib import HTTPConnection, socket
from smtplib import SMTP

def email_alert(message, status):
fromaddr = '[email protected]'
toaddrs = '[email protected]'

server = SMTP('smtp.163.com:25')
server.starttls()
server.login('xxxxx', 'xxxx')
server.sendmail(fromaddr, toaddrs, 'Subject: %s\r\n%s' % (status, message))
server.quit()

def get_site_status(url):
response = get_response(url)
try:
if getattr(response, 'status') == 200:
return 'up'
except AttributeError:
pass
return 'down'

def get_response(url):
try:
conn = HTTPConnection(url)
conn.request('HEAD', '/')
return conn.getresponse()
except socket.error:
return None
except:
logging.error('Bad URL:', url)
exit(1)

def get_headers(url):
response = get_response(url)
try:
return getattr(response, 'getheaders')()
except AttributeError:
return 'Headers unavailable'

def compare_site_status(prev_results):

def is_status_changed(url):
status = get_site_status(url)
friendly_status = '%s is %s' % (url, status)
print friendly_status
if url in prev_results and prev_results[url] != status:
logging.warning(status)
email_alert(str(get_headers(url)), friendly_status)
prev_results[url] = status

return is_status_changed

def is_internet_reachable():
if get_site_status('www..com') == 'down' and get_site_status('www.sohu.com') == 'down':
return False
return True

def load_old_results(file_path):
pickledata = {}
if os.path.isfile(file_path):
picklefile = open(file_path, 'rb')
pickledata = pickle.load(picklefile)
picklefile.close()
return pickledata

def store_results(file_path, data):
output = open(file_path, 'wb')
pickle.mp(data, output)
output.close()

def main(urls):
logging.basicConfig(level=logging.WARNING, filename='checksites.log',
format='%(asctime)s %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')

pickle_file = 'data.pkl'
pickledata = load_old_results(pickle_file)
print pickledata

if is_internet_reachable():
status_checker = compare_site_status(pickledata)
map(status_checker, urls)
else:
logging.error('Either the world ended or we are not connected to the net.')

store_results(pickle_file, pickledata)

if __name__ == '__main__':
main(sys.argv[1:])

腳本核心點解釋:
1、getattr()是python的內置函數,接收一個對象,可以根據對象屬性返回對象的值。
2、compare_site_status()函數是返回的是一個內部定義的函數。
3、map() ,需要2個參數,一個是函數,一個是序列,功能就是將序列中的每個元素應用函數方法。
總結
以上就是這篇文章的全部內容,有需要的朋友們可以參考借鑒。

Ⅳ Python 檢測一個網址是否為404不存在(網頁不存在)

你可以用Python獲取網頁的狀態碼,拿到狀態碼後面怎麼處理還不就由你了,見下面截圖。

第一種是用urllib模塊:
import urllib
status=urllib.urlopen("http://www..com").code
print status

第二種是用requests模塊:
import requests
code=requests.get("http://www..com").status_code
print code

Ⅵ Python批量判斷網站是否能訪問

#coding:utf-8
#author:www.chenhaifei.com
import requests #打開
import time,random #控制時間
import sys #專門亂碼的
reload(sys)
sys.setdefaultencoding(『utf-8』)
headers={
『User-Agent』:』Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36′,
}
url=』http://www.chenhaifei.com/』 ##檢測的url
cont = requests.get(url,allow_redirects = False).status_code ##allow_redirects = False不檢測跳轉後的狀態碼
print cont
time.sleep(0.5)
上面是單個判斷url狀態碼的,你可以把想要檢測的url放在一個txt裡面,這樣就可以循環檢測了。

Ⅶ python 怎麼測試ip的可用性

os.system("ping 測試IP") 去測試,判斷返回值

Ⅷ python測試網頁打不開的情況下~幫忙看看這個腳本怎麼修改啊這個網站是打不開的~但是不寫log

既然你是測試網頁打不開的情況,所以你try的代碼中在打開網頁那裡就會報錯,然後就會執行except的代碼,那麼當然你寫err到file的操作就沒有執行,你去cat log ,當然就是空的
你可以把err = 'can not open url' ....... 到下面的代碼移動到except中,你再試試

Ⅸ Python 測試網站是否能訪問10

input改raw_input

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