2017-01-30 76 views
0

正如標題所述。我想獲得連接到我的電腦的所有IP列表。不是路由器,而不是網絡上的PC。只有即時通訊連接到的IP。我知道在C#中有一種方法,但你如何在C中做到這一點。
我在linux上這樣做。C - 如何獲取連接到我的電腦的所有IP

+0

我們正在談論Linux還是Windows操作系統? –

+0

@OferArial我正在談論linux - 讓我在編輯中加入 – NathanProgrammer

+0

我試着在下面給出一個針對linux的解決方案。 –

回答

0

This comment鏈接,它解析程序可以讀取來自:

/proc/net/tcp 
/proc/net/udp 
/proc/net/raw 
0

你問你的IP地址。要獲得每個接口的IP地址列表,您可以使用內置的linux功能,這將輸出數據,然後您可以解析它。

感謝這個answer,並在此基礎上,你可以使用下面的代碼在新行打印每個地址:

在運行此,使用locate ifconfig並設置相應的路徑字符串中。

請注意我的意見:首先檢查此命令是否通過終端輸出您想要的輸出!

#include <stdio.h> 
#include <stdlib.h> 


int main(int argc, char *argv[]) 
{ 

    FILE *fp; 
    char ip[15]; 

    /* Open the command for reading. */ 
    fp = popen("ifconfig | grep \"inet addr\" | cut -d\":\" -f2 | cut -d\" \" -f1", "r"); 

    /*First check that this command outputs the wanted output for you*/ 
    if (fp == NULL) { 
    printf("Failed to run command\n"); 
    exit(1); 
    } 

    /* Read the output a line at a time - output it. */ 
    while (fgets(ip, sizeof(ip)-1, fp) != NULL) { 
    printf("%s", ip); 
    } 

    /* close */ 
    pclose(fp); 

    return 0; 
} 
相關問題