2017-07-27 3 views
0

私はWindowsとPython(主にmacOS/Ruby)でプログラミングするのが初めてです。私は、IPアドレスをスキャンし、ネットワーク化されたデバイスを見つけ出し、それらにログインし、ファームウェアをアップグレードするプログラムを書いています。私はこれを行うためのPythonスクリプトを書いてGUI用にTkinterを使いました。私はPythonでスクリプトを実行すると、すべて期待どおりに動作します。しかし、PyInstallerから.exeを作成した後にスクリプトを実行すると問題が発生します。Pythonのエラーログ.exe

私は "ネットワークをマップ"し、python-nmapを使って出力をXMLにエクスポートしようとすると、エラーが発生すると思います。私はスレッド上でscan_network()関数を持っていて、実行されているかどうかをチェックし、完了したら "XML Generated"というポップアップが表示されます。 IPをGUIに入力すると、XMLが生成され、XMLが生成されます。

私はnmapに問題があってexeなどにバンドルされていないと思われますが、わかりません。ログを確認する方法を追加する方法はありますか?

「ネットワークのスキャン」ボタンが呼び出す機能です。これにログを追加するにはどうしたらいいですか?

import nmap 

def scan_network(ips): 
    nm = nmap.PortScanner() 

    nm.scan(hosts=ips, arguments='-v -A') 
     with open('xml/pyscan.xml', 'w') as xml_file: 
      xml_file.write(nm.get_nmap_last_output()) 

答えて

0

さらに調査しました。

これは機能します。

import nmap 
import traceback 
from utils import xml_parser 

def scan_network(ips): 
    try: 
     nm = nmap.PortScanner() 

     nm.scan(hosts=ips, arguments='-v -A') 
     with open('xml/pyscan.xml', 'w') as xml_file: 
      xml_file.write(nm.get_nmap_last_output()) 

     xml_parser.parse_xml('xml/pyscan.xml') 
    except: 
     f = open('nmap.log', 'w') 
     e = traceback.format_exc() 
     f.write(str(e)) 
     f.close()