2017-12-25 45 views
-1

플라스크 (Python 2.7)를 사용하여 웹 사이트를 만들었습니다. 해당 시스템의 사양에 따라 웹 사이트를 방문하는 시스템에 설치 파일을 보내려고합니다. 따라서 나는 그 시스템의 cmd 프롬프트에 접근하여 몇 가지를 찾고자한다 : 1. 컴퓨터가 작동하고있는 os와 비트 2. 파이썬이 설치되어 있는가?플라스크를 사용하여 내 웹 사이트를 방문하는 시스템의 세부 정보를 얻으십시오

지금까지는 로컬 호스트를 사용하고 있었기 때문에 코드는 문제가 없었습니다.

def index(): 
    var3 = subprocess.call('uname -o > z2.txt' , shell = True) 
    if (var3 == 0): 
     return render_template("ch1.html") #ch1 says its ubuntu 
    else : 
     return render_template("ch2.html") #ch2 says its windows 

내가 이전에 다른 윈도우 PC에서 확인했고 그것은 나를 내 코드가 괜찮다고 생각하게 창을 표시했다 (이 사람은 시스템의 운영 체제를 감지하는 것입니다). 이제 내가 우분투를 확인할 때 여전히 윈도우를 보여줍니다. 이제 subprocess.call이 내 웹 사이트를 방문하는 시스템이 아니라 내 시스템의 cmd 자체에서 명령을 호출한다는 것을 알게되었습니다. 방문하는 시스템의 cmd에 액세스하여 os, bit 및 python이 PYTHON/Flask를 사용하여 시스템에 설치되어 있는지 확인할 수 있습니까?

참고 : (그 어떤 도움의 경우) 내 웹 사이트를 방문하는 모든 시스템은 동일한 무선 랜에 연결됩니다

편집 : OS, 비트 및 파이썬 설치하기 여부에서 방문자의 시스템 내 웹 사이트가 주요 기준입니다. 다른 시스템의 cmd 또는 다른 방법으로 액세스 할 수 있습니다.

+0

이것은 X-Y 문제와 같습니다. 너 왜 신경 쓰냐? 가장 할 수있는 일은 수행하려는 작업을 수행하는 더 좋은 방법입니다. –

+0

플라스크를 사용하여 만든 웹 사이트의 클라이언트 시스템 사양에 따라 클라이언트 시스템에 설치 파일을 보내려고합니다. 따라서 사양에 신경을 쓴다. 더 좋은 방법은? 제발, 어떤 도움이 정말 도움이 될 것입니다. –

+0

지원하는 OS별로 하나의 설치 패키지를 만들고 설치 프로그램 (클라이언트 시스템에서 실행 됨)을 사용하여 시스템을 설치하기 위해 수행해야 할 작업을 파악해야합니다. 아니면 OS 네이티브 패키지로 응용 프로그램을 빌드하고 합법적으로 작동하는 경우 Python과 같은 런타임 종속성을 설치 프로그램에 묶어야합니다. –

답변

1

웹 서버에서 클라이언트 시스템에 명령을 실행할 수있는 방법은 없습니다. 그렇지 않으면 주요 보안 문제가 될 수 있습니다. 당신은 HTTP 요청에서 클라이언트의 OS를 확인할 수 있습니다 http://werkzeug.pocoo.org/docs/0.13/utils/#module-werkzeug.useragents

+0

감사합니다. 나는 cmd에 액세스하는 부분을 편집했다. 이 링크는 나에게 OS를 줄 것이다. 비트 버전을 구할 수있는 방법과 시스템에 파이썬이 설치되어 있는지 여부를 알려주시겠습니까? –

+1

그 정보에 액세스 할 수 없다니 걱정됩니다. – dvnguyen

+0

클라이언트가 진실을 말하고 있는지 여부를 알 수 없기 때문에 'User-Agent' 헤더를 파싱하여 클라이언트 OS를 ** 알 수는 없습니다. 예를 들어 어떤 헤더를 보내든 쉽습니다. '말 '. –

0

하지만 그것에 대해이야 :

에서만 플라스크 요청 객체를 통해 자사의 사용자 에이전트 정보를 읽어하여 클라이언트의 OS 이름을 알 수 있습니다.

https://en.wikipedia.org/wiki/User_agent