python_TCP_IP_Parse - 8BitsCoding/RobotMentor GitHub Wiki

ํ”„๋กœ์ ํŠธ ์ •๋ณด

  • ์ œ์ž‘์‹œ์ž‘์ผ : 19.09.20
  • ์ œ์ž‘์ข…๋ฃŒ์ผ : 19.09.22
  • ์–ธ์–ด : Python3.7
  • IDE : Pycharm2019.01.01(Community)
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : PyQt5
  • GitHub ์ฃผ์†Œ : https://github.com/GoodayTH/python_tcp_udp_parse

ํ”„๋กœ์ ํŠธ ๊ณ„ํš

์ด๋ฏธ์ง€

๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์˜ˆ์ •

  1. ํŒŒ์‹ฑ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•˜๋ฉด ํŒŒ์‹ฑํ•  ๋ฌธ์ž๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ถœ๋ ฅ

  2. ๊ต์ฒด๋ฌธ์ž๋ฅผ ์ง€์ •ํ•˜๋ฉด ํŒŒ์‹ฑ๋ฌธ์ž๋ฅผ ๊ต์ฒด๋ฌธ์ž๋กœ ๋ณ€๊ฒฝ

  3. ํŒŒ์‹ฑ๋ฐ์ดํ„ฐ๋Š” ํŒŒ์‹ฑ๋ฌธ์ž ๋’ค 3๊ธ€์ž๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

ํ”„๋กœ์ ํŠธ๋Š” Python TCP/UDP/WEB toolsํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ ๋‹ค.


ํ•ต์‹ฌ์ฝ”๋“œ

์ฒดํฌ๋ฐ•์Šค, ๋ผ์ธ์—๋””ํŠธ ๋„ฃ๊ธฐ

# tcp_udp_web_ui.py
def __init__(self, num):
    # ...
    # CheckBox
    self.lineEdit_parse = QtWidgets.QLineEdit()
    self.parse_checkbox = QCheckBox()
    # ...

def layout_ui(self):
    # ...
    self.h_box_5.addWidget(self.lineEdit_parse)
    self.h_box_5.addWidget(self.parse_checkbox)
    # ...

def ui_translate(self):
    # ...
    self.parse_checkbox.setText(self._translate("TCP-UDP", "๋ฌธ์ž์—ดํŒŒ์‹ฑ"))

ํŠน์ • ๋ฌธ์ž์—ด ํŒŒ์‹ฑ(๊ฐฏ์ˆ˜ ์นด์šดํŠธ) ๋ฐฉ๋ฒ•

# tcp_logit.py
for client, address in self.client_socket_list:
    try:
        recv_msg = client.recv(1024)
    except Exception as ret:
        pass
    else:
        if recv_msg:
            msg = recv_msg.decode('utf-8')
            # msg = 'ๆฅ่‡ชIP:{}็ซฏๅฃ:{}:\n{}\n'.format(address[0], address[1], msg)
            if self.parse_checkbox.isChecked() == True:
                msg = 'Target IP:{}Port:{}:\n{}\n๋ฌธ์ž์—ด[{}]์˜ ๊ฐœ์ˆ˜{}\n'.format(address[0], address[1], msg,self.lineEdit_parse.text(),msg.count(self.lineEdit_parse.text()))
            else:
                msg = 'Target IP:{}Port:{}:\n{}\n'.format(address[0], address[1], msg)
            self.signal_write_msg.emit(msg)

ํŠน์ • ๋ฌธ์ž์—ด ๊ต์ฒด

recv_msg = self.tcp_socket.recv(1024)
if recv_msg:
    msg = recv_msg.decode('utf-8')
    if self.parse_checkbox.isChecked() == True:
        if self.change_checkbox.isChecked() == True:
            count = msg.count(self.lineEdit_parse.text())
            msg_change = msg.replace(self.lineEdit_parse.text(), self.lineEdit_change.text(), count)
            msg = 'Target IP:{}Port:{}:\nReceived msg:{}\n๋ฌธ์ž์—ด[{}]์˜ ๊ฐœ์ˆ˜{}\nchanged msg:{}\n'.format(
                address[0], address[1],
                msg, self.lineEdit_parse.text(),
                msg.count(self.lineEdit_parse.text()),
                msg_change)