C - 如何将所有IP连接到我的电脑

时间:2017-01-30 18:35:52

标签: c ip

正如标题所说。我想获得连接到我的电脑的所有IP的列表。不是路由器而不是网络上的PC。只有我连接的IP。我知道在C#中有一种方法,但是你如何在C中做到这一点。
我在linux上做这个。

2 个答案:

答案 0 :(得分:0)

This comment链接到解析来自:

的程序
/proc/net/tcp
/proc/net/udp
/proc/net/raw

答案 1 :(得分:0)

您要求提供IP地址。要获取每个接口的IP地址列表,您可以使用ifconfig内置的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;
}