Olá,
Não sei se esta secção é a correcta para colocar esta questão, se não for peço desde já desculpa.
Tenho um site que está a correr numa lan e pretendo correr um script python através de php. Na verdade, penso que o problema esteja mesmo no script em si pois eu consigo chamar o script. O problema é que apenas parte do resultado aparece, coisa que não acontece caso eu corra o script directamente na linha de comandos. Estou a usar windows para correr o script. Em baixo, o script:
Código (Python):
O que eu consigo obter deste script é apenas a criação do ficheiro "output.txt" mas apenas com o header:
guid;ip;os
O que é suposto aparecer, no caso do ficheiro "ips.txt" ter apenas um ip, por exemplo, seria:
guid;ip;os
10.10.5.36;10.10.5.36;Windows7
Alguém sabe se há algum problema no script?
Obrigado.
Não sei se esta secção é a correcta para colocar esta questão, se não for peço desde já desculpa.
Tenho um site que está a correr numa lan e pretendo correr um script python através de php. Na verdade, penso que o problema esteja mesmo no script em si pois eu consigo chamar o script. O problema é que apenas parte do resultado aparece, coisa que não acontece caso eu corra o script directamente na linha de comandos. Estou a usar windows para correr o script. Em baixo, o script:
Código (Python):
#!C:/Python27/python
from __future__ import print_function
from array import *
from time import gmtime, strftime
import os
import time
import subprocess
import sys
import re
import time
import urllib
def get_os(ip):
cmd = "C:\\paexec.exe \\\\"+ip+" -low -u <username> -p <password> REG QUERY \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\" /v ProductName"
CommandOutput, stderrText = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ).communicate()
t=str(CommandOutput)
t1 = t.split("REG_SZ")[1]
t2 = t1.split('Connecting')[0]
t3 = t2.replace(" ","")
t4 = t3.replace("\n","")
t5 = t4.replace("\r","")
t6 = t5.replace("\t","")
return t6
opener = urllib.FancyURLopener({})
f = opener.open("[url="http://10.46.12.36/sites/default/files/machine_data/ips.txt"]http://10.46.12.36/sites/default/files/machine_data/ips.txt"[/url])
text = f.read()
ip_f = text.split()
f.close()
f2 = open('C:\\xampp\\htdocs\\sites\\default\\files\\machine_data\\output.txt','w')
f2.write("guid;ip;os" + "\n")
computer_os = {}
for i in range (0, len(ip_f)):
ip = ip_f[i]
pause_time = 0.1
print('======================================================')
print(' GETTING INFO FOR ' + ip_f[i])
print('======================================================')
res = subprocess.call(['ping', ip, '-n', '1'])
if res == 0:
computer_os[i] = get_os(ip)
time.sleep(pause_time)
comments[i] = 'OK'
f2.write(ip + ";" + ip + ";" + computer_os[i])
f2.write("\n")
else:
time.sleep(pause_time)
computer_os[i] = ''
f2.write(ip + ";" + ip + ";" + computer_os[i])
f2.write("\n")
f2.close()
from __future__ import print_function
from array import *
from time import gmtime, strftime
import os
import time
import subprocess
import sys
import re
import time
import urllib
def get_os(ip):
cmd = "C:\\paexec.exe \\\\"+ip+" -low -u <username> -p <password> REG QUERY \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\" /v ProductName"
CommandOutput, stderrText = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ).communicate()
t=str(CommandOutput)
t1 = t.split("REG_SZ")[1]
t2 = t1.split('Connecting')[0]
t3 = t2.replace(" ","")
t4 = t3.replace("\n","")
t5 = t4.replace("\r","")
t6 = t5.replace("\t","")
return t6
opener = urllib.FancyURLopener({})
f = opener.open("[url="http://10.46.12.36/sites/default/files/machine_data/ips.txt"]http://10.46.12.36/sites/default/files/machine_data/ips.txt"[/url])
text = f.read()
ip_f = text.split()
f.close()
f2 = open('C:\\xampp\\htdocs\\sites\\default\\files\\machine_data\\output.txt','w')
f2.write("guid;ip;os" + "\n")
computer_os = {}
for i in range (0, len(ip_f)):
ip = ip_f[i]
pause_time = 0.1
print('======================================================')
print(' GETTING INFO FOR ' + ip_f[i])
print('======================================================')
res = subprocess.call(['ping', ip, '-n', '1'])
if res == 0:
computer_os[i] = get_os(ip)
time.sleep(pause_time)
comments[i] = 'OK'
f2.write(ip + ";" + ip + ";" + computer_os[i])
f2.write("\n")
else:
time.sleep(pause_time)
computer_os[i] = ''
f2.write(ip + ";" + ip + ";" + computer_os[i])
f2.write("\n")
f2.close()
O que eu consigo obter deste script é apenas a criação do ficheiro "output.txt" mas apenas com o header:
guid;ip;os
O que é suposto aparecer, no caso do ficheiro "ips.txt" ter apenas um ip, por exemplo, seria:
guid;ip;os
10.10.5.36;10.10.5.36;Windows7
Alguém sabe se há algum problema no script?
Obrigado.