请帮我写一个局域网内端口转发实现没有外网的电脑可以远程连接的代码 请写出哪个是没有外网的地址和端口
时间: 2024-02-17 15:01:01 浏览: 75
如何用远程桌面来连接连接另一个局域网中没有公网IP的电脑可用.pdf
实现局域网内端口转发可以使用 Python 的 socket 和 threading 模块,下面是一个简单的代码示例:
```python
import socket
import threading
# 监听的本地地址和端口
local_host = "0.0.0.0"
local_port = 22
# 转发到的远程地址和端口
remote_host = "192.168.1.100"
remote_port = 22
def handle_client(client_socket):
remote_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
remote_socket.connect((remote_host, remote_port))
while True:
data = client_socket.recv(4096)
if not data:
break
remote_socket.send(data)
data = remote_socket.recv(4096)
if not data:
break
client_socket.send(data)
client_socket.close()
remote_socket.close()
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((local_host, local_port))
server_socket.listen(5)
print("[*] Listening on {}:{}".format(local_host, local_port))
while True:
client_socket, address = server_socket.accept()
print("[*] Accepted connection from {}:{}".format(address[0], address[1]))
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
```
其中,local_host 和 local_port 是监听的本地地址和端口,remote_host 和 remote_port 是转发到的远程地址和端口。在这个例子中,local_host 和 local_port 是本地的地址和端口,remote_host 和 remote_port 是远程的地址和端口,需要根据实际情况修改。
在这个例子中,local_host 和 local_port 是没有外网的地址和端口,因为它们是在本地机器上的。而 remote_host 和 remote_port 是有外网的地址和端口,因为它们是远程主机的地址和端口,需要通过外网进行访问。
阅读全文