2014-12-19 41 views
0

我正在寫一個python腳本來檢查我的android設備是否連接到互聯網。我試圖做到以下幾點在亞行外殼:Python腳本來檢查如果Android設備連接到互聯網

  1. 的busybox的telnet 173.194.33.97 80
  2. GET/HTTP/1.0

輸出是: - HTTP/1.0 200 OK

我只關心HTTP/1.0 200好,檢查互聯網連接。

我試圖在Python中使用netcat,但我沒有很好的實施經驗。

任何幫助將不勝感激!

+1

我想通了,使用以下命令將返回HTTP/1.0 200 OK,但我不能把它放在一個Python代碼。 (adb shell「echo'GET/HTTP/1.0 \ n \ n'| nc 173.194.33.103 80」) – Omar 2014-12-19 03:50:29

+0

如果你已經找出了自己的問題的答案,強烈建議在此添加它作爲答案。 – kartikg3 2014-12-19 04:32:51

+1

@ kartikg3感謝您的評論。我仍然有困難「Python化」它。很難處理雙/單引號。我現在正在修復它,後來我會發佈一個python腳本。 – Omar 2014-12-19 18:28:11

回答

2

最後,Python腳本是:

cmd = "adb shell \"echo \'GET/HTTP/1.0\n\n\' | nc 173.194.33.103 80\"" 
p = Popen(shlex.split(cmd), stdout=PIPE, stderr=STDOUT) 
#The output will be "HTTP/1.1 200 OK", "HTTP/1.0 200 OK" OR "HTTP/2.0 200 OK" 
for line in iter(p.stdout.readline, b''): 
    if line.rstrip().startswith('HTTP/') and line.rstrip().endswith('200 OK'): 
     print '\nFOUND IT: ' + line.rstrip() 
     wifi_flag = True 
     break