python 은 윈도 우 를 통 해 리 눅 스 시스템 을 원 격 으로 제어 합 니 다.
[Windows 에서 원 격 으로 Linux 시스템 을 제어 하여 socket 모듈 에 대한 인식 을 실현 합 니 다]
실험 환경
Windows 에서(아 날로 그 클 라 이언 트[IP:192.168.43.77]):python 3.6
Linux 에서(아 날로 그 서버[IP:192.168.43.226]):python 2.7
전제 조건
둘 다 핑 통 할 수 있다.
서버 방화벽 닫 기
코드
서버 코드(server.py):
#!/usr/bin/env python
#coding:utf-8
import socket
import os
HOST = "192.168.43.226"
PORT = 5000
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
addr = (HOST,PORT)
s.bind(addr) #
s.listen(1) #
conn,addr = s.accept() #
print(addr) # IP
def get_client_file(): #
conn.send("Ready to receive!")
data = conn.recv(20480) #
print(data)
with open("clientFile.txt",'wb') as f:
f.write(data)
conn.close()
def send_server_file(): #
c_filepath = conn.recv(1024) #
with open(c_filepath,'rb') as f:
data = f.read()
conn.sendall(data)
conn.close()
def main():
while True:
cmd = conn.recv(1024)
print(cmd) #
if cmd == "q":
break
if cmd == "transdata":
get_client_file() #
break
if cmd == "recvdata":
send_server_file() #
break
data = os.popen(cmd) #
sdata = data.read()
if sdata:
conn.sendall(sdata)
else:
conn.send("finish")
conn.close()
s.close()
if __name__ == "__main__":
main()
클 라 이언 트(client.py):
import socket
HOST = "192.168.43.226"
PORT = 5000
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
addr = ((HOST,PORT))
c.connect(addr) #
def send_client_file(): #
data = c.recv(1024) #
print(data)
c_filepath = input("Please enter the client file path:")
with open(c_filepath,"rb") as f:
file = f.read() # byte
c.sendall(file) #
def get_server_file(): #
s_filepath = input("Please enter the server file path:")
c.send(bytes(s_filepath,encoding='gbk'))
data = c.recv(20480) #
with open("shadow.txt","wb") as f:
f.write(data)
def main():
while True:
cmd = input("Plsase input a command:")
c.send(bytes(cmd,encoding="gbk")) #
if cmd == "q":
break
if cmd == "transdata": #
send_client_file()
break
if cmd == "recvdata": #
get_server_file()
break
data = c.recv(20480)
print(data)
c.close()
if __name__ =="__main__":
main()
5.테스트 결과(서버 shadow 파일 테스트 가 져 오기)windows 에서 client.py 파일 을 실행 합 니 다.
>입력:recvdata
>입력:/etc/shadow
관심 있 는 친 구 는 함께 기술 을 연구 하고 토론 할 수 있 습 니 다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.