えーと、
私はまだPythonの基本を理解しています..
私の現在の要件は、複数のデバイスの Web ベースのインターフェイスの可用性をテストする Python スクリプトを開発することです (たとえば、Web ブラウザー経由で「http://192.168.0.2:9876」と入力する必要がある場合)。複雑すぎる必要があります。
もともと bash スクリプトに次のようなものがあったため、単純な bash curl コマンドから変換しようとしています。
date=`date +"%Y-%m-%d_%H-%M-%S-%N"`
curl -s --connect-timeout 1 ${ip} -o /dev/null
test=$?
if [[ $test == 0 ]] ;then
echo "${date}:webping - Web Page Up for ${ip}" >> $log
else
echo "${date}:webping - Web Page Down for ${ip}" >> $log
fi
これは元のコンセプトで機能しましたが、Pythonで似たようなものを探していました. 理由の範囲内で、出力は異なる場合があります...誰もがどこから始めるべきかについての指針を持っています。
PSここで他のいくつかの質問を見てきましたが、インターフェイスが「ダウン」した(つまり、サービスを停止した)誤検知を示しているようで、ステータスコード200が引き続き表示されます。
編集:以下は私が試したコードです。
for url in ["http://www.google.co.uk", "http://192.168.0.2:8000"]:
try:
connection = urllib2.urlopen(url)
print connection.getcode()
connection.close()
except urllib2.HTTPError, e:
print "none"
訂正: 次の結果が得られます...
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 391, in open
response = self._open(req, data)
File "C:\Python27\lib\urllib2.py", line 409, in _open
'_open', req)
File "C:\Python27\lib\urllib2.py", line 369, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 1173, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "C:\Python27\lib\urllib2.py", line 1148, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 10061] No connection could be made because the target machine actively refused it>
Python のエラー出力を見たくないです。
前もって感謝します