외부 파이썬 패키지를 사용할 수있는 경우 : pip install netifaces.
이 패키지를 사용하면 인터페이스가 존재하는지 테스트 한 다음 Google에 접속할 수 있는지 테스트 할 수 있습니다. 이 코드는 테스트되지 않았지만 매우 가까이에 있어야합니다.
import netifaces
import requests
ppp_exists = False
try:
netifaces.ifaddresses('ppp0') # this assumes that you only have one ppp instance running
ppp_exists = True
except:
ppp_exists = False
# you have an interface, now test if you have a connection
has_internet = False
if ppp_exists == True:
try:
r = requests.get('http://www.google.com', timeout=10) # timeout is necessary if you can't access the internet
if r.status_code == requests.codes.ok:
has_internet = True
else:
has_internet = False
except requests.exceptions.Timeout:
has_internet = False
if ppp_exists == True and has_internet == True:
# turn on LED with GPIO
pass
else:
# turn off LED with GPIO
pass
당신은
os.system('ifconfig > name_of_file.txt')
당신은 당신이 좋아이 어쨌든을 구문 분석 할 수 사용하여 텍스트 파일은 ifconfig의 출력을 기록 할 수
UPDATE. ppp 인터페이스가 존재하는지 확인하는 방법도 있습니다.
import os
import netifaces
THE_FILE = './ifconfig.txt'
class pppParser(object):
"""
gets the details of the ifconfig command for ppp interface
"""
def __init__(self, the_file=THE_FILE, new_file=False):
"""
the_file is the path to the output of the ifconfig command
new_file is a boolean whether to run the os.system('ifconfig') command
"""
self.ppp_exists = False
try:
netifaces.ifaddresses('ppp0') # this assumes that you only have one ppp instance running
self.ppp_exists = True
except:
self.ppp_exists = False
if new_file:
open(the_file, 'w').close() # clears the contents of the file
os.system('sudo ifconfig > '+the_file)
self.ifconfig_text = ''
self.rx_bytes = 0
with open(the_file, 'rb') as in_file:
for x in in_file:
self.ifconfig_text += x
def get_rx_bytes(self):
"""
very basic text parser to gather the PPP interface data.
Assumption is that there is only one PPP interface
"""
if not self.ppp_exists:
return self.rx_bytes
ppp_text = self.ifconfig_text.split('ppp')[1]
self.rx_bytes = ppp_text.split('RX bytes:')[1].split(' ')[0]
return self.rx_bytes
그냥 pppParser()를 호출합니다. 파이썬 패키지 인덱스에 파이썬 패키지의 광범위한 (https://pypi.python.org/pypi?%3Aaction=search&term=가있다
get_rx_bytes() 라스베리 & 제출 = 검색) 관련 raspberry pi. 어쩌면 당신의 필요에 맞는 것을 찾을 수 있을까요? – Matthias