读书人

vc怎么获取telnet命令的返回值

发布时间: 2013-01-06 15:44:48 作者: rapoo

vc如何获取telnet命令的返回值
已知telnet管理员用户名和密码,telnet登录后如何获取返回值到本地计算机上。要求纯c
[解决办法]
没实际运行,试试看吧。

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void main( void )
{
FILE *f;

if ((f=_popen( "telnet.exe >output.txt 2>error.txt","wb"))==NULL) exit(1);
fputs("open 192.168.1.1\n",f);
Sleep(500);
fputs("username\n",f);
Sleep(500);
fputs("password\n",f);
Sleep(500);
fputs("\x1bclose\n",f);
Sleep(500);
fputs("\x1bquit\n",f);
Sleep(500);
printf( "\nProcess returned %d\n",_pclose(f));
}



[解决办法]
用管道
[解决办法]
你直接用Socket连上去,发ASCII码就行了,telnet本身挺简单的。你可以找个netcat源码看看。
[解决办法]
引用:
但telnet命令无法重定向标准输入输出。

那就根据telnet协议自己写socket
[解决办法]
管道通信。。。
CreatePipe(phRead, pStdOuthWrite, NULL, 0) 创建读写管道。
DuplicateHandle 复制句柄
CreateProcessA 创建管道子进程, 这里要传入参数 cmd.exe
ReadFile WriteFile 读写管道。

真巧, 研究什么,就有人来问什么。。

读书人网 >C语言

热点推荐