多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 服務器 > 程序內執行shell命令自動獲取局域網內所有在線IP和開放端口(Linux)

程序內執行shell命令自動獲取局域網內所有在線IP和開放端口(Linux)

來源:程序員人生   發布時間:2015-01-24 08:46:11 閱讀次數:4372次

前言

        題目說的有點長,其實就是以下幾件事,第1是讓Shell命令可以在程序內履行,然后將履行結果傳遞給變量,從而可以進行后續的事務處理,第2是使用nmap命令獲得當前局域網內所有在線IP和開放的端口,最后就是對nmap取得的結果進行處理,得到只有IP和端口的結果。

        Linux命令行的強大功能相信使用Linux的人都知道,1個命令等于你在windows用幾百行乃至上千行的代碼量才能實現,所以,如果很好的利用shell命令,可以說是事半功倍。

        而要充分利用shell的結果,必定是需要取得可以處理的命令返回結果。

程序內履行Shell命令

        主要是利用以下的函數:

        函數定義:

#include <stdio.h> FILE * popen(const char *command , const char *type ); int pclose(FILE *stream);

 

        函數說明:

        popen()函數通過創建1個管道,調用fork()產生1個子進程,履行1個shell以運行命令來開啟1個進程。這個管道必須由pclose()函數關閉,而不是fclose()函數。pclose()函數關閉標準I/O流,等待命令履行結束,然后返回shell的終止狀態。如果shell不能被履行,則pclose()返回的終止狀態與shell已履行exit1樣。

  type參數只能是讀或寫中的1種,得到的返回值(標準I/O流)也具有和type相應的只讀或只寫類型。如果type是"r"則文件指針連接到command的標準輸出;如果type是"w"則文件指針連接到command的標準輸入。

  command參數是1個指向以NULL結束的shell命令字符串的指針。這行命令將被傳到bin/sh并使用-c標志,shell將履行這個命令。

  popen()的返回值是個標準I/O流,必須由pclose來終止。前面提到這個流是單向的(只能用于讀或寫)。向這個流寫內容相當于寫入該命令的標準輸入,命令的標準輸出和調用popen()的進程相同;與之相反的,從流中讀數據相當于讀取命令的標準輸出,命令的標準輸入和調用popen()的進程相同。

      返回值:

  如果調用fork()或pipe()失敗,或不能分配內存將返回NULL,否則返回標準I/O流。popen()沒有為內存分配失敗設置errno值。如果調用fork()或pipe()時出現毛病,errno被設為相應的毛病類型。如果type參數不合法,errno將返回EINVAL。

      使用方法:

//execute shell command //履行1個shell命令,輸出結果逐行存儲在resvec中,并返回行數 int32_t myexec(const char *cmd, vector<string> &resvec) { resvec.clear(); FILE *pp = popen(cmd, "r"); //建立管道 if (!pp) { return ⑴; } char tmp[1024]; //設置1個適合的長度,以存儲每行輸出 while (fgets(tmp, sizeof(tmp), pp) != NULL) { if (tmp[strlen(tmp) - 1] == ' ') { tmp[strlen(tmp) - 1] = ' 主站蜘蛛池模板: 国产一区二区三区久久 | 无夜精品久久久久久 | 男女男精品视频 | 日韩中文欧美 | 黑人videosex中国另类 | 中文字幕首页 | 亚洲日比视频 | 伊甸园久久网站 | 波多野结衣中文字幕久久 | 午夜5060 | 亚洲一区二区久久 | 国产福利在线网址成人 | 久久国产免费一区二区三区 | 成人国产精品 | 亚洲欧美日本国产 | 国产亚洲精品观看91在线 | 成年香蕉大黄美女美女 | 在线满18网站观看视频 | 亚洲国产成人久久综合一 | 亚洲成a人v欧美综合天堂软件 | 久久亚洲精中文字幕冲田杏梨 | 性做久久久久久 | 日本一二三区视频 | 日本护士xxxx0000 | xxxx性欧美黑人 | 亚洲乱码一区二区三区国产精品 | 一区二区精品在线观看 | 91国内精品久久久久怡红院 | 欧美yw精品日本国产精品 | 国产一级做a爰片久久毛片99 | 免费xxxxx大片观看 | 一级毛片视频在线 | 国产亚洲欧美ai在线看片 | 免费能看的黄色网址 | baoyu116.永久免费视频入口 | 97碰碰碰免费公开在线视频 | 国产h在线播放 | 日本精品一区二区三区在线观看 | 亚洲精品欧美精品中文字幕 | 精品国产午夜肉伦伦影院 | 亚洲欧洲精品视频在线观看 |