300x250
반응형
<실습>
가상환경이 아닌 윈도우에 와서 Python에서 실행을 해봅시다.

import socket
s=socket.socket()
s.connect(("192.168.187.137",21)) # "접속할 IP", Port번호
s.recv(1024).decode() #1024는 받을 크기입니다.
s.send("USER anonymous".encode()) # ID
s.recv(1024).decode()
s.send("PASS anonymous".encode()) # PW
s.recv(1024).decode()
s.send("PORT 192,168,187,1,25,25".encode()) #포트를 여는 방식인데, 라우터에 대한 포트를 열어야한다.
s.send("LIST".encode())
s.recv(1024).decode()
각각 Python shell에서 실행을 해봅시다.

이렇게 나오면 성공입니다.
다시 가상환경에 있는 Win7으로 돌아가서 메모장을 실행시킨 다음

메모장을 하나 만들어 줍니다.

가상환경이 아닌 윈도우로 돌아와서 똑같이 파일을 만들어 줍니다.

python을 실행시켜준 다음 소스 코드를 실행시킵니다.
# -*- coding: utf-8 -*-
from ftplib import FTP
ftp=FTP("192.168.187.141")
print("배너 : ",ftp.getwelcome()) # 배너 출력
print("로그인 : ",ftp.login()) # 로그인
print("리스트 : ",ftp.retrlines('LIST')) # 리스트 출력
print(ftp.retrbinary('RETR download.txt',open('download.txt','wb').write))
정상적으로 실행되는 것을 볼 수 있으며, 바탕화면에 다운로드가 된 것을 확인 할 수 있습니다.



다음은 가상환경에 업로드를 시켜봅시다.
# -*- coding: utf-8 -*-
from ftplib import FTP
ftp=FTP("192.168.187.141")
print("배너 : ",ftp.getwelcome()) # 배너 출력
print("로그인 : ",ftp.login()) # 로그인
print("리스트 : ",ftp.retrlines('LIST')) # 리스트 출력
print(ftp.storbinary('STOR upload.txt',open('upload.txt','rb')))

정상적으로 실행된 것을 볼 수 있으며, 가상환경에 돌아가서 보면!!

성공적으로 된 것을 확인할 수 있습니다.
300x250
반응형
'python' 카테고리의 다른 글
HTTP 서버와 통신(웹 요청) (0) | 2023.08.23 |
---|---|
FTP 서버 익스플로잇[FTP Server Exploit] (0) | 2023.08.03 |
VM를 활용한 FTP소켓 통신 - 1 (0) | 2023.07.28 |
파이썬(Python) 에코 클라이언트, 서버 구현 (0) | 2023.07.26 |
파이썬(Python)3.11.3 클라이언트, 서버 소켓 테스트 (0) | 2023.07.26 |
댓글