c - 如何在 C 中将 system() 与 telnet 一起使用

标签 c cmd windows-xp system telnet

我想用 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/

相关文章:

asp.net - 我需要下载 Microsoft Internet Information Services 吗?

c# - Windows XP 中的文件创建是原子的吗?

c++ - 使用 Tcp,为什么大数据 block 的传输带宽比小数据 block 低?

c - 将结构添加到 C 中的数组

c - 如何将两个灵活数组放入一个结构中?

c - Vigenere 密码陷入无限循环

windows - 批处理脚本帮助清除历史记录不是 cls 的问题

c - 如何验证结构体成员?

windows - WMIC命令批量输出非UTF-8文本文件

python - 对象继承和嵌套 cmd