예제 #1
0
    def _send_stop(self):
        LogController.LogController().insert("パケット送信を停止します")

        # スレッド停止
        if self.th_send is not None:
            self.th_send.stop()
        if self.th_monitor is not None:
            self.th_monitor.stop()

        MonitorParams.srcport.set("")
        MonitorParams.datalen.set(0)
        MonitorParams.send_btn.set("送信開始")

        # ウィジェット活性化
        for widget in self.widgets.values():
            widget.state(['!disabled'])

        # 無制限なら送信数Entryは非活性
        CheckUnlimited(SendParams.unlimited, self.widgets['param_pps'])()

        # ICMPなら送信元/送信先ポート番号非活性
        ChangeProtocol(SendParams.proto, self.widgets['srcport'],
                       self.widgets['dstport'])()

        # # 管理者権限モード表示設定(管理者権限モードなし)
        # advanced_view(self.widgets)

        self.stat = 0
예제 #2
0
    def _recv_start(self):
        # ログ出力インスタンス
        logger = LogController.LogController()

        # モニタースレッド開始
        self.monitor_start()

        # パケット受信スレッド開始
        # 0:TCP 1:UDP
        proto = RecvParams.proto.get()
        ip = RecvParams.ip.get()
        port = RecvParams.port.get()
        if proto == 0:
            logger.insert("TCPパケット受信を開始します({}:{})".format(ip, port))
            self.recv_tcp_start()
        elif proto == 1:
            logger.insert("UDPパケット受信を開始します({}:{})".format(ip, port))
            self.recv_udp_start()

        MonitorParams.recv_btn.set("受信停止")

        # ウィジェット非活性化
        for widget in self.widgets.values():
            widget.state(['disabled'])

        self.stat = 1
예제 #3
0
    def _send_start(self):
        # ログ出力インスタンス
        logger = LogController.LogController()

        # モニタースレッド開始
        self._monitor_start()

        # モニターデータ長セット
        MonitorParams.datalen.set(SendParams.datalen.get())

        # パケット送信スレッド開始
        #   0:TCP 1:UDP 2:Original(不使用) 3:ICMP
        proto = SendParams.proto.get()
        if proto == PROTO_TCP:
            logger.insert("TCPパケット送信を開始します\n{}".format(
                SendParams.dstaddr.address_list()))
            self._send_tcp_start()
        elif proto == PROTO_UDP:
            logger.insert("UDPパケット送信を開始します\n{}".format(
                SendParams.dstaddr.address_list()))
            self._send_udp_start()
        elif proto == PROTO_ORG:
            pass
        elif proto == PROTO_ICMP:
            logger.insert("ICMPパケット送信を開始します\n{}".format(
                SendParams.dstaddr.address_list()))
            self._send_icmp_start()

        MonitorParams.send_btn.set("送信停止")

        # ウィジェット非活性化
        for widget in self.widgets.values():
            widget.state(['disabled'])

        self.stat = 1
예제 #4
0
def tcp_exception(exc_obj):
    logger = LogController.LogController()
    if len(exc_obj.args) == 1:
        msg = "コネクションの確立に失敗しました。"
    else:
        msg = exc_obj.args[1]
    logger.insert(msg)
    messagebox.showwarning(title="warning", message=msg)
    SendAction().send_stop()
예제 #5
0
 def __call__(self):
     filename = filedialog.asksaveasfilename(
         initialdir="/",
         title="ログの保存",
         filetypes=(("テキスト ファイル", "*.txt"), ("全ての ファイル", "*.*")))
     log = LogController.LogController().get()
     f = open(filename, 'w')
     f.write(log)
     f.close()
예제 #6
0
    def _recv_stop(self):
        LogController.LogController().insert("パケット受信を停止します")
        """ スレッド停止 """

        # スレッド停止
        if self.th_recv is not None:
            self.th_recv.stop()
        if self.th_monitor is not None:
            self.th_monitor.stop()

        MonitorParams().recv_btn.set("受信開始")

        # 設定ウィジェット活性化
        for widget in self.widgets.values():
            widget.state(['!disabled'])

        self.stat = 0
예제 #7
0
 def __init__(self, master):
     scrolledtext.ScrolledText.__init__(self, master, height=5)
     # ここでLogControllerを最初に呼ぶこと
     LogController.LogController(self)