칼리리눅스
( 사전에 python 가상환경 모듈 깔아둘것. sudo apt install python3.11-venv )
python -m venv 이름
으로 가상환경 만들고
source 이름/bin/activate
으로 가상환경 실행
가상환경 내부에서
python -m pip install --upgrade pip
pip install 패키지명
pip 업그레이드 후에 pip로 필요한 패키지 설치
윈도우
python -m venv mysite
으로 venv 모듈을 이용하여 mysite 라는 이름의 가상환경 만듬
cd mysite\Scripts
activate
가상환경 실행
pip install requests
칼리리눅스에 requests 설치
requests
공식사이트 : https://requests.readthedocs.io/en/latest/
HTTP 요청을 보내기 위한 라이브러리
JSON 데이터 처리, 인증, 세션 유지, 웹 크롤링, 공격 코드 작성시 등등 사용
소켓socket 모듈 사용
# iptables -A FORWARD -j NFQUEUE -m comment --comment SNORT
# snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -Q
nids 클라이언트에 iptables 룰 추가, snort 켜놓고
lynx와 curl 이용해서 접속 가능 확인
requests를 이용해 데이터를 얻어올 수도 있다
파라미터를 담아서 전송하고 그 결과 출력
칼리에서 비주얼 스튜디오 열어서 가상환경 만들고 실행
(root 사용자에서는 비주얼 스튜디오 사용 불가)
가상환경이 선택된 상태
자동으로 만들경우
터미널은 source .venv/bin/activate 로 가상환경을 별도로 선택해주어야 함
디버깅 시작 F5
디버깅 없이 실행 Ctrl+F5
아래로 파이썬 기본학습
파이썬 주석
1) #
2) '''
3) """
파이썬 키워드 확인
>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
출력형식
1) print(studentName1, student_name2)
2) print('%s %s' %(studentName1, student_name2))
3) print('{} {}'.format(studentName1, student_name2))
4) print(f'{studentName1} {student_name2}')
변수명 규칙
파이썬 예약어, 특수문자 사용 불가
숫자로 시작할 수 없고 대소문자를 구분한다
자료형
1) 정수 int
2) 실수 float
3) 문자열 str
4) 불리언 bool
5) 리스트 list [1,2] 순서O 반복O 중복O 변경O
6) 튜플 tuple (1,2) 순서O 반복O 중복O 변경X
7) 딕셔너리 dict {'a':'1','b':2} 순서X 반복O 중복△ 변경O ←키 중복 불가, 값 중복 가능
8) 셋 set {1,2} 순서X 반복O 중복X 변경O
type(값)으로 확인 가능
반복문
1) 리스트
1-1) for 변수 in 리스트:
print(변수)
1-2) for 인덱스, 변수 in 리스트:
print(인덱스, 변수)
2) 튜플
for 변수 in 튜플:
print(변수)
3) 딕셔너리
for 키, 값 in 딕셔너리.items():
print(키, 값)
4) 셋
for 변수 in 셋:
print(변수)
멤버쉽 연산자
a in b
a not in b
b에는 반복할 수 있는 iterable이 와야한다
제어문
1) if문, 중첩 if문
if 조건:
코드
elif 조건:
코드
else:
코드
2) match-case문 (3.10 버전부터 사용가능)
match 변수:
case 값:
코드
3) while문
while 조건:
코드
else: (생략가능)
코드
4) for문
1-1) for 변수 in (리스트, 튜플, 딕셔너리, 셋, 문자열, 함수 등):
코드
else: (생략가능)
코드
1-2) range 함수활용
for i in range(숫자):
리스트[i]
5) break문 (if문, match-case문, while문, for문 내부에서 사용)
실행된 코드를 완전히 빠져나간다 (다음 순서 실행x)
6) continue문 (if문, match-case문, while문, for문 내부에서 사용)
실행된 코드를 빠져나가 다음 순서를 실행한다
변수.isdigit() : 숫자면 true 아니면 false