% python3 -V Python 3.8.9 Python 3.x 설치하기 MacBook Terminal에서 "python -v"를 입력해보면 2.7.18 버전이 default로 설치되어 있다. 그리고는 Python 2.7 is not recommended라고 나온다. % python -v ... WARNING: Python 2.7 is not recommended. This version is included in macOS for compatibility with legacy software. Future versions of macOS will not include Python 2.7. Instead, it is recommended that you transition to using 'python..
OFDM symbol은 OFDM signal이 들어있는 time duration을 말한다. 그리고 CP = Cyclic Prefix는 OFDM symbol안에 들어있는 OFDM signal의 뒷부분을 그대로 복사해다가 붙여넣기한 signal이다. CP가 무엇인지, 왜 필요한지, 등은 따로 포스팅하고 여기서는 CP length와 OFDM symbol length를 구하는데에 집중하려고 한다. 5G에서 CP length와 OFDM symbol length에 대한 정의는 3GPP TS 38.211 chapter 5.3.1에서 아래와 같이 확인할 수 있다. Chapter 제목에서 알 수 있듯이 PRACH를 제외한 physical channel들에 대한 내용이고, PRACH에 대해선 5.3.2에서 확인할 수 있다..
PyCharm에서 Pyinstaller를 편하게 연결해서 사용하고 싶은데... 어떻게 하면 될까? File 메뉴에서 setting에 들어간 다음, Tools에서 External tools를 Click! "+"를 누르면 아래와 같은 화면이 나오는데 Name, Description, Program, Arguments, Working directory를 아래와 같이 입력한 다음 "OK"를 클릭한다. Arguments와 Working directory에서 "$"로 묶여있는 부분은 PyCharm에서 정의한 macro이다. "Insert Macro..." 버튼을 눌러서 추가하거나 직접 입력해줘도 된다. Arguments에서 "--onefile"은 말그대로 단 하나의 exe 파일로 만들어주는 옵션이다. "--wind..
Python 3.7을 사용하는데 pip로 scapy를 install하고 import하니까 error가 났다. > pip install scapy 이렇게 설치하게 되면 현시점에서 가장 최신버전으로 설치가 된다. 내가 설치한 현시점 최신버전은 2.4.2였다. 근데 googling해보니 이 scapy 2.4.2이 python 3.7과 안맞는 부분이 있나보다. import하면 error를 띄우는데 아래와 같이 uninstall하고 2.4.0 버전으로 다시 설치하니 import할때의 error가 없어졌다. 기능상 문제도 없는 것 같다. uninstall을 꼭 해야 하는지는 잘 모르겠음.. > pip uninstall scapy > pip install scapy==2.4.0
.pcap 파일안에 UDP 패킷이 몇개 있는지 어떻게 알 수 있을까? 다음 예제 파일은 test.pcapng 파일을 읽어서 Ethernet/IP/ICMP/TCP/UDP packet이 각각 몇개씩 있는지 확인하고 출력해준다. 핵심인 haslayer() 함수는 각각의 패킷에 어떤 protocol layer가 있는지 확인해준다. Return은 boolean으로 True/False로 확인하면 된다. # Imports import scapy.all as sc pkts = sc.rdpcap('test.pcapng') print('Total packets :', len(pkts)) # init counts count_ether = 0 count_ip = 0 count_icmp = 0 count_tcp = 0 coun..
어떤 .pcap 파일안에 들어있는 전체 패킷 갯수는 어떻게 알아낼까? Python scapy를 이용해서 아래와 같이 단 몇줄로 쉽게 알아낼 수 있다. Python version은 3.7이고, IDE는 spyder3를 이용했다. # getTotalNumPackets.py import scapy.all as sc pkts = sc.rdpcap('test.pcapng') print('Total packets =', len(pkts)) 단 세줄로 구현할 수 있는데 첫번째로 scapy의 모든 class를 import하고 sc로 별칭을 정해준다. 그리고 두번째 줄에서 scapy의 rdpcap() 함수를 이용해서 test.pcapng를 parsing하여 모든 패킷들을 pkts에 넣어준다. 여기서 주의할 점은 test..