1. 程式人生 > >Linux C 呼叫 ping命令 檢測網路狀態

Linux C 呼叫 ping命令 檢測網路狀態

int ping_status(char *ip)
{
    int i, status;
    pid_t pid;
	printf(">>>>>>>>>>>>> ping_status\n ");
    // 不同則迴圈檢測多次
    for (i = 0; i < 3; ++i)
    {
        // 新建一個程序來執行ping命令
        if ((pid = vfork()) < 0)
        {
            printf("vfork error");
            continue;
        } 

        if (pid == 0)
        {
            // 執行ping命令
            //if (execlp("ping", "ping", "-c 1", ip, (char*)0) < 0)
			//if ( execlp("ping", "ping","-c 1",svrip, (char*)0) < 0)
			if ( execlp("ping", "ping","-c","1",ip, (char*)0) < 0)
            {
                printf("execlp error\n");
                exit(1);
            }
        }

        waitpid(pid, &status, 0);

        // 相等說明正常
        if (status == 0)
            return 0;

      //  sleep(2);
    }

    return -1;
}

相關推薦

Linux C 呼叫 ping命令 檢測網路狀態

int ping_status(char *ip) { int i, status; pid_t pid; printf(">>>>>>>>>>>>> ping_status\n "); // 不同則迴圈

c#如何檢查區域網內伺服器是否連通(呼叫外部Ping命令獲取網路連線情況)

使用C#呼叫外部Ping命令獲取網路連線情況 以前在玩Windows 98的時候,幾臺電腦連起來,需要測試網路連線是否正常,經常用的一個命令就是Ping.exe。感覺相當實用。 現在 .net為我們提供了強大的功能來呼叫外部工具,並通過重定向輸入、輸出獲取執行結果,下面就用一

Qt|Linux工作筆記-非同步呼叫ping命令,重定向獲取資訊,介面顯示

邏輯: 1.使用QProcess在開執行緒前設定輸出檔案【setStandardOutputFile】; 2.開一個執行緒,去專門呼叫shell命令,比如ping; 3.Qt讀取重定向檔案,進行介面顯示;   程式執行截圖如下:   原始碼如

Ubuntu 用於檢測網路狀態的相關命令

常用的基本命令 檢視網路引數 ifconfig 輸出結果 enp2s0 Link encap:乙太網 硬體地址 fc:aa:14:35:1e:98 inet 地址:192.168.248.150 廣播:192.168.248.127

Linux下使用c++呼叫shell命令

1:system() 宣告: extern int system (const char *__command) __wur; 函式說明:首先會呼叫fork()產生子程序,由子程序執行具體的命令,呼叫system期間,SIGG HID訊號會被擱置,但是SIGINT和SI

objective-c檢測網路狀態

Reachability *r = [Reachability reachabilityWithHostName:@"www.apple.com"]; switch ([r currentReachabilityStatus]) { case Not

ubuntu 檢測網路狀態命令

一、檢測網路狀態常用的基本命令 1)ifconfig命令被用於配置和顯示Linux核心中網路介面的網路引數 ifconfig 輸出結果如下: drew@ubun:~$ ifconfig eth0 Link encap:乙太網 硬體地址

linux中shell curl命令獲取http狀態

linux中shell curl命令獲取http狀態碼linux中shell curl命令獲取http狀態碼通過curl的-w參數我們可以自定義curl的輸出,%{http_code}代表http狀態碼 代碼如下 復制代碼# curl -I -m 10 -o /dev/null -s -w %{http_co

通過ping命令檢測主機的存活性

shell判斷所有的業務系統中主機的存活性ping問題描述:現在有一上線項目,用的環境為vsphere 虛擬化技術。由於不能隨時判斷各虛擬主機的存活性,保證業務系統的正常運行,現在需要編寫一個腳本判斷主機的存活性,將返回值與第三方短信平臺進行對接思路分析:1、明確目的判斷主機的存活性,可用ping 命令 pi

Android移動開發檢測網路狀態並使用BroadcastReceiver(廣播接收者)進行接收網路變化的後續處理

在Android開發中,許多功能需要網路連線,所以在開發過程中需要進行手機網路的檢測。而每做一個App,就要進行檢測,那麼我直接將檢測網路狀態的功能封裝成一個類。 檢測網路狀態所需要的Api: ConnectivityManager主要用於檢視網路狀態和管理網路連線相關的

通過核心空間的netlink檢測網路狀態變化的文章連結

詳細講述請參考(這篇寫的比較完整,適合初學者看)netlink監聽網路變化程式碼(轉載)+流程分析(原創+轉載)+資料結構以及相關巨集的解析(原創) 核心空間 rtnetlink 檢測 IP 地址變化的實現與分析 給出瞭如何在使用者空間通過rtnetlink sock

使用ICMP協議檢測網路狀態

ICMP(Internet ControlMessages Protocol,網間控制報文協議)是TCP/IP協議族的子協議,是一種面向無連線的協議,在IP和路由器之前傳遞控制訊息。當向目標主機持續傳送大量ICMP資料包時,會造成ICMP風暴,最終導致主機癱瘓。下面的四個

Linux環境下ping命令出現“Destination host unreachable”解決方法

在一次測試過程中主機和單板機通過網線相連,在主機終端中通過minicom工具進行配置後,上電單板機,正常啟動後網口顯示已經連線。 接下來檢視主機和單板機的IP地址,(如果沒有IP則設定IP地址)然後用“ping”命令來測試網路是否通路。 出現“Destination hos

iOS網路4——Reachability檢測網路狀態

一、整體介紹 前面已經介紹了網路訪問的NSURLSession、NSURLConnection,還有網頁載入有關的webview,基本滿足通常的網路相關的開發。 其實在網路開發中還有比較常用的就是網路狀態的檢測。蘋果對需要聯網的應用要求很高,就是必須要進行聯網檢查。另外,當網路發生異常時能夠及時提

linux c實現mkdir命令

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #in

Android檢測網路狀態,判斷當前網路是否可用

使用者手機當前網路可用:WIFI、2G/3G網路,使用者開啟與不開啟網路,和是否可以用是兩碼事。可以使用指的是:使用者開啟網路了並且可以連上網際網路進行上網。 檢測當前網路是否可用,程式碼如下: /** * 檢測當的網路(WLAN、3G/2G)狀態 * @para

Linux C 程式設計記憶體洩露檢測工具(二):memwatch

Memwatch簡介 在三種檢測工具當中,設定最簡單的算是memwatch,和dmalloc一樣,它能檢測未釋放的記憶體、同一段記憶體被釋放多次、位址存取錯誤及不當使用未分配之記憶體區域。請往http://www.linkdata.se/sourcecode.html下載最

ios檢測網路狀態改變

使用之前請從Apple網站下載示例:點此下載 然後將Reachability.h 和 Reachability.m 加到自己的專案中,並引用 SystemConfiguration.framework,就可以使用了。 Reachability 中定義了3種網路狀態:

linux C++通過ntp協議獲取網路時間

#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.

Android 優化電池使用時間——確定和檢測網路狀態

原文參見 此處 確定和監控網路連線狀態 重複提醒和後臺服務最常見的用途之一,就是為來自網際網路資源的應用資料、快取資料安排定期更新或執行長時間執行的下載任務。但是,如果您沒有連線網際網路,或因連線過慢而無法完成下載,那就根本沒必要喚醒裝置並安排更新了。