C++ 写的简单ping 工具

xiaoxiao2025-09-01  11

// cmd.cpp : 定义控制台应用程序的入口点。 //  目录下放一个txt文件 内容为ping 192.168.2.1 及可ping该网段下所有的ip

#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h>

#include <iostream> #include <fstream> #include <cassert> #include <string> using namespace std; string readTxt(string file) {          ifstream infile;     infile.open(file.data());   //将文件流对象与文件连接起来     assert(infile.is_open());   //若失败,则输出错误消息,并终止程序运行

    string s;     while(getline(infile,s))     {         cout<<s<<endl;         break;     }          infile.close();             //关闭文件输入流     return s; }

void writetxt(char * ss) {    ofstream OutFile;     /*         ofstream OutFile;            //实例一个写文件对象

        OutFile.open("Test1.txt");     //创建一个Test.txt文本,并且打开Test.txt文件

        //ofstream OutFile("Test.txt"); //利用构造函数创建txt文本,并且打开该文本

        OutFile <<ss;  //把字符串内容"This is a Test!",写入Test.txt文件

        OutFile.close();            //关闭Test.txt文件

        //return 0;     */     OutFile.open("mytest.txt", ios::app);     if(!OutFile) //检查文件是否正常打开     {         cout<< "abc.txt can't open"<< endl;         abort(); //打开失败,结束程序     }     else     {         OutFile << ss;// << endl;         OutFile.close();     } } int _System(const char * cmd, char *pRetMsg, int msg_len) {     FILE * fp;     char * p = NULL;     int res = -1;     if (cmd == NULL || pRetMsg == NULL || msg_len < 0)     {         printf("Param Error!\n");         return -1;     }     if ((fp = _popen(cmd, "r")) == NULL)     {         printf("Popen Error!\n");         return -2;     }     else     {         memset(pRetMsg, 0, msg_len);         //get lastest result           while (fgets(pRetMsg, msg_len, fp) != NULL)         {             printf("Msg:%s", pRetMsg); //print all info           }

        if ((res = _pclose(fp)) == -1)         {             printf("close popenerror!\n");             return -3;         }         pRetMsg[strlen(pRetMsg) - 1] = '\0';         return 0;     } } //char *cmd ;

int getpos(char s[],int star,int len) {    for(int i=len;i>5;i--)            if (s[i]=='.')      return i;

    return 1; } char  dd[20] ="ping 127.1.30.1"; int _tmain(int argc, _TCHAR* argv[]) {     //test cmd     string ipset;          ipset=readTxt("ip.txt");//会自动ping  txt文件中设置的ip所在的网段     ipset.copy(dd,20,0);     int posofpoint= getpos(dd,13,20);          //char *cmd = "python d:\\PythonProjects\\Demo1.py [1]";     for (int i=1;i<254;i++)     {         char *cmd = "1";         

        char u;         char buffer[65];         _itoa( i, buffer, 10); //正确解法一         printf("zzzz%css%css%c",dd[10],dd[11],dd[12]);                  dd[posofpoint+1]=buffer[0];         dd[posofpoint+2]=buffer[1];         dd[posofpoint+3]=buffer[2];         //strcat(dd,buffer);         char a8Result[128] = { 0 };         int ret = 0;         ret = _System((char *)dd, a8Result, sizeof(a8Result));         printf("ret = %d \na8Result = %s\nlength = %d \n", ret, a8Result, strlen(a8Result));         char  result_[100];                           //sprintf(result_, "%d", 123);         sprintf(result_,"%s\t ret = %d \na8Result =%s \nlength = %d \n",dd,ret,a8Result, strlen(a8Result));         writetxt((char *)result_);

    }          getchar();     return 0;

}

 

转载请注明原文地址: https://www.6miu.com/read-5035553.html

最新回复(0)