如何使用 Python 從任何地方控制電腦?


遠端訪問電腦變得越來越重要,尤其是在當今在家辦公的環境中。雖然有很多商業工具可用於遠端訪問,但 Python 提供了一種簡單而有效的方法,可以使用 Python 程式語言從任何地方遠端控制您的電腦。

在本文中,我們將探討如何使用 Python 從任何地方控制您的電腦。我們將討論如何在兩臺電腦之間建立遠端連線,如何使用 Python 在遠端電腦上執行命令,以及如何在本地和遠端電腦之間傳輸檔案。

有了這些知識,您可以從世界任何地方遠端訪問和控制您的電腦,從而提高工作效率。

下面列舉的要點概述了本文中我們將採用的方法,以使用 Python 從任何地方控制您的電腦

  • 建立遠端連線:要從任何地方控制您的電腦,您需要在本地和遠端電腦之間建立遠端連線。我們將使用 Python 中的 socket 庫來建立套接字,並透過網際網路連線到遠端電腦。

  • 向遠端電腦傳送命令:一旦我們建立了遠端連線,我們就可以使用 Python 向遠端電腦傳送命令。我們將使用 Python 中的 subprocess 模組在遠端電腦上執行命令,並在本地電腦上接收輸出。

  • 在本地和遠端電腦之間傳輸檔案:除了執行命令外,我們可能還需要在本地和遠端電腦之間傳輸檔案。我們將使用 Python 中的 ftplib 庫透過 FTP 協議傳輸檔案。

透過遵循這些步驟,您可以使用 Python 從世界任何地方遠端控制您的電腦。讓我們更深入地瞭解每個步驟,並探討如何在 Python 中實現它們。

客戶端程式連線程式碼

示例

import socket


def receive_command(connection):
	while True:
    	command = input("Enter command: ")
    	if command.strip():
        	connection.send(command.encode())
        	print(f"Command '{command}' sent successfully.")
        	break

	data = connection.recv(1024)
	if data:
    	print("Command received and executed successfully.")
    	print(data.decode())


if __name__ == "__main__":
	server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
	host = socket.gethostname()
	port = 8080
	server_socket.bind((host, port))
	print(f"Waiting for connections on {host}:{port}...")
	server_socket.listen(1)
	conn, addr = server_socket.accept()
	print(f"Connection established from {addr}")

	receive_command(conn)

	conn.close()
	server_socket.close()

輸出

程式碼的輸出將是

Waiting for connections on <hostname>:8080...

這是伺服器開始監聽傳入連線時列印到控制檯的初始訊息。

現在讓我們考慮伺服器的程式碼,該程式碼與客戶端建立連線,併發送和接收基本命令。

示例

import socket


def receive_command(connection):
	while True:
    	command = input("Enter command: ")
    	if command.strip():
        	connection.send(command.encode())
        	print(f"Command '{command}' sent successfully.")
        	break

	data = connection.recv(1024)
	if data:
    	print("Command received and executed successfully.")
    	print(data.decode())


if __name__ == "__main__":
	server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
	host = socket.gethostname()
	port = 8080
	server_socket.bind((host, port))
	print(f"Waiting for connections on {host}:{port}...")
	server_socket.listen(1)
	conn, addr = server_socket.accept()
	print(f"Connection established from {addr}")

	receive_command(conn)

	conn.close()
	server_socket.close()

如果客戶端連線到伺服器,則輸出將為

Connection established from ('<client_ip>', '<client_port>')
Enter command:

這表示客戶端已連線到伺服器,並且伺服器正在提示執行命令。客戶端的 IP 地址和埠號將分別顯示在 <client_ip> 和 <client_port> 的位置。

使用者輸入命令後,輸出將為

Command '<command>' sent successfully.
Command received and executed successfully.
<command_output>

這表示伺服器已接收並執行了命令,並且命令的輸出顯示在 <command_output> 的位置。使用者輸入的命令將顯示在 <command> 的位置。

結論

在本文中,我們探討了如何使用 Python 從任何地方控制電腦。我們查看了一個簡單的伺服器程式碼示例,該程式碼監聽傳入連線並提示執行命令,以及一個客戶端程式碼示例,該程式碼連線到伺服器,執行命令並將輸出傳送回伺服器。

更新於: 2023年8月3日

5K+ 閱讀量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.