我想用 C 语言创建一个程序,使用 telnet 协议(protocol)显示路由器密码。从 cmd 执行此操作的指令是:
- 打开CMD
- 输入
telnet <router ip>
- 键入路由器仪表板用户
- 输入路由器控制面板密码
- 输入无线默认值
我试试
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
system("telnet 192.168.1.1");
system("Menara");
system("Menara");
system("wireless default");
system("PAUSE");
return 0;
}
但程序在第二个参数处停止,所以我假设 system()
无法与 telnet 通信。谁能给我正确的代码?
最佳答案
您需要打开一个管道到 telnet
命令并向它发送命令。看popen()
C 中的函数并查看此 StackOverflow question .
这是一个代码示例(取 self 之前指出的 StackOverflow 问题):
#include <stdio.h>
int main()
{
FILE *fp = popen("telnet 192.168.1.1","w");
fprintf(fp, "Menara\n");
fprintf(fp, "Menara\n");
fprintf(fp, "PAUSE\n");
if (pclose(fp) != 0) {
/* Error reported by pclose() */
fprintf (stderr, "Could not run more or other error.\n");
}
return 0;
}
关于c - 如何在 C 中将 system() 与 telnet 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34485687/