<내용추가>
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 변수에 대입한다.
'Hacking > Network' 카테고리의 다른 글
[10일차] ARP 헤더 클래스 만들기 (0) | 2017.09.25 |
---|---|
[9일차] ARP 헤더 패킷 분석하기 (0) | 2017.09.25 |
[7일차] 이더넷 헤더 패킷 분석하기 (0) | 2017.09.20 |
[6일차] IP 헤더 패킷 분석하기 (0) | 2017.09.19 |
[5일차] UDP 헤더 패킷 분석하기 (0) | 2017.09.19 |
WRITTEN BY