如何从 Python 上带有套接字的服务器获取 VNC 安全类型?
How to get VNC security type from server with sockets on Python?
如何为 Python 创建脚本,它将连接到具有端口的特定 ip,以及 print/return ,VNC 连接具有哪种安全类型?
import socket
def check(ip,port):
vnc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
vnc.connect((ip,int(port)))
vnc_ver = vnc.recv(12)
print(vnc_ver)
vnc.send(vnc_ver)
print(vnc.recv(1024))
check("127.0.0.1","5900")
我刚得到输出:"RFB 003.008"
IETF RFC 6143(远程帧缓冲协议)定义安全握手发生在版本握手之后(参见 https://tools.ietf.org/rfc/rfc6143.txt 第 7.1.2 段)。
在安全握手的第一阶段,VNC 服务器应该:
- 发送包含支持的安全类型数量的 1 个字节
- 后跟支持的安全类型(每种安全类型编码在一个字节上)
因此 Python 脚本(类似于您问题中的脚本)可以这样显示支持的安全类型:
import socket
def displaySecurityType(sec_type):
switcher = {
0: "Invalid",
1: "NONE",
2: "VNC Authentication"
}
print(' security type: ' + str(sec_type) + ' (' + switcher.get(sec_type,"Not defined by IETF") +')' )
def check(ip,port):
vnc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
vnc.connect((ip,int(port)))
vnc_ver = vnc.recv(12)
print(vnc_ver)
vnc.send(vnc_ver)
nb_sec_types = ord(vnc.recv(1))
print("Nb security types: " + str(nb_sec_types))
for i in xrange(0,nb_sec_types):
sec_type = ord(vnc.recv(1))
displaySecurityType(sec_type)
check("127.0.0.1","5900")
如何为 Python 创建脚本,它将连接到具有端口的特定 ip,以及 print/return ,VNC 连接具有哪种安全类型?
import socket
def check(ip,port):
vnc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
vnc.connect((ip,int(port)))
vnc_ver = vnc.recv(12)
print(vnc_ver)
vnc.send(vnc_ver)
print(vnc.recv(1024))
check("127.0.0.1","5900")
我刚得到输出:"RFB 003.008"
IETF RFC 6143(远程帧缓冲协议)定义安全握手发生在版本握手之后(参见 https://tools.ietf.org/rfc/rfc6143.txt 第 7.1.2 段)。
在安全握手的第一阶段,VNC 服务器应该:
- 发送包含支持的安全类型数量的 1 个字节
- 后跟支持的安全类型(每种安全类型编码在一个字节上)
因此 Python 脚本(类似于您问题中的脚本)可以这样显示支持的安全类型:
import socket
def displaySecurityType(sec_type):
switcher = {
0: "Invalid",
1: "NONE",
2: "VNC Authentication"
}
print(' security type: ' + str(sec_type) + ' (' + switcher.get(sec_type,"Not defined by IETF") +')' )
def check(ip,port):
vnc = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
vnc.connect((ip,int(port)))
vnc_ver = vnc.recv(12)
print(vnc_ver)
vnc.send(vnc_ver)
nb_sec_types = ord(vnc.recv(1))
print("Nb security types: " + str(nb_sec_types))
for i in xrange(0,nb_sec_types):
sec_type = ord(vnc.recv(1))
displaySecurityType(sec_type)
check("127.0.0.1","5900")