<내용추가>

5         :  __init__ 인자값에 data = None 을 주어 빈 객체도 만들 수 있다.

7~10   : data가 있으면 self._dst 에 도착지 물리 주소(6byte) , self._src 출발지 물리주소(6byte) 

             self._type 이더넷의 타입(2byte)

11~14 : 값이 없으면 b''를 넣어준다.

16       : @property 를 사용하면 인스턴스명.dst() 이렇게 안하고 인스턴스명.dst 이렇게 메소드를 호출

17~20 : ex) b'\x00\x05f#0\x19' 을 unpack 해서 (0, 5, 102, 35, 48, 25) 튜플로 바꿔주고 

                  '00:05:66:23:30:19' str로 다시 바꿔서 리턴

21       : @dst.setter  17 라인의 메소드명과 같아야한다. 인스턴스명.dst = 값  이렇게 세터를 받아온다. 

22~26 : 메소드 인자값의 dst 는 받아온 값을 의미

             '00:05:66:23:30:19' 의 값을 받으면 .split() 함수로 ':' 를 제거하면 

             ['00','05','66','23','30','19']  리스트에 문자열이 담겨져 나온다.

              16진수 문자열을 10진수 정수로 형변환하고 pack하고 self._dst 변수에 대입한다.

41~44 : self._type 을 정수로 unpack 하고 '0x0800' 형태의 문자열로 리턴한다.

            '0x0800' = IPv4      '0x86dd' = IPv4       '0x0806' = ARP

46~47 : 정수 0x80 형태의 값을 받아서 pack 해서 self._type 변수에 대입한다.


WRITTEN BY
Bugday

,