|

楼主 |
发表于 2017-2-23 17:03:27
|
显示全部楼层
河南省郑州市
变量名 | 类 型 | 静态 | 数组 | 备 注 | wsaData | WSADATA | | | version | 整数型 | | | ret | 整数型 | | | hostname | 文本型 | | | commandline | 文本型 | | | username | 文本型 | | | password | 文本型 | | | nh | 整数型 | | | rc | 整数型 | | | hostaddr | 整数型 | | | m_addr | sockaddr_in | | | sock | 整数型 | | | session | 整数型 | | | fingerprint | 文本型 | | | len | 整数型 | | | type | 整数型 | | | channel | 整数型 | | | start | 逻辑型 | | | buffer | 文本型 | | |
version = 合并整数 (2, 0 )ret = WSAStartup (version, wsaData ) hostname = “192.168.10.115” commandline = 编辑框1.内容 username = “root” password = “xxxxx” rc = libssh2_init (0 )输出调试文本 (rc )hostaddr = inet_addr (hostname )sock = socket ( #AF_INET, #SOCK_STREAM, 0 )m_addr.sin_family = #AF_INET m_addr.sin_addr = hostaddr m_addr.sin_port = htons (22 ) ret = connect (sock, m_addr, 16 ) 如果真 (ret = #SOCKET_ERROR ) 输出调试文本 (“connect error”)session = libssh2_session_init_ex (0, 0, 0, 0) 如果真 (session = 0 ) 输出调试文本 (“session init error”) 返回 () libssh2_session_set_blocking (session, 0)rc = libssh2_session_handshake (session, sock ) 判断循环首 (rc = -37 ) rc = libssh2_session_handshake (session, sock ) 判断循环尾 ().  .
如果真 (取文本长度 (password ) ≠ 0 ) rc = libssh2_userauth_password (session, username, password ) 判断循环首 (rc = #LIBSSH2_ERROR_EAGAIN )  rc = libssh2_userauth_password (session, username, password ) 判断循环尾 () 如果真 (rc ≠ 0 ) 输出调试文本 (“Authentication by password failed.”)
channel = libssh2_channel_open_session (session )rc = libssh2_session_last_error (session, “”, 0, 0 ) 判断循环首 (channel = 0 且 rc = #LIBSSH2_ERROR_EAGAIN ) channel = libssh2_channel_open_session (session ) rc = libssh2_session_last_error (session, “”, 0, 0 ) 判断循环尾 () 如果真 (channel = 0 ) 输出调试文本 (“Channel Open Session Error”) rc = libssh2_channel_exec (channel, commandline ) 判断循环首 (rc = #LIBSSH2_ERROR_EAGAIN ) rc = libssh2_channel_exec (channel, commandline ) 判断循环尾 () 如果真 (rc ≠ 0 ) 输出调试文本 (“Channel Exec Error”)start = 真 判断循环首 (start ) buffer = 取空白文本 (16384 ) rc = libssh2_channel_read (channel, buffer, 取文本长度 (buffer ))  如果 (rc > 0 )   编辑框2. 加入文本 (子文本替换 (取文本左边 (buffer, rc ), 字符 (10 ), 字符 (13 ) + 字符 (10 ), , , 真) + #换行符 ) 跳出循环 ()  如果 (rc = #LIBSSH2_ERROR_EAGAIN )     跳出循环 ()     判断循环尾 ()libssh2_channel_free (channel )libssh2_session_disconnect (session, “Normal Shutdown, Thank you for playing”)libssh2_session_free (session )closesocket (sock )libssh2_exit ()
|
|