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