c语言用什么保存ip地址,用C语言获取IP地址列表(示例代码)

最近给客户的SEP系统定义了一个简单的策略,策略是检测主机是否存在双网卡。SEP系统只能完成简单的运行可执行程序、检测文件是否存在、注册表是否存在等功能,因此需要写一个简单的判断双网卡的程序。因此写了一个简单的程序,代码如下:

#include 

#include 

#include 

#pragma comment (lib, "ws2_32")

int _tmain(int argc, _TCHAR* argv[])

{

WSADATA wsa = { 0 };

struct in_addr addr;

int i = 0;

char bHostName[MAXBYTE] = { 0 };

WSAStartup(MAKEWORD(2, 2), &wsa);

gethostname(bHostName, MAXBYTE);

hostent *ht = gethostbyname(bHostName);

while ( ht->h_addr_list[i] != 0 )

{

addr.s_addr = *(u_long *) ht->h_addr_list[i++];

// printf("IP Address #%d: %s\n", i, inet_ntoa(addr));

}

if ( i > 1 )

{

// printf("存在多个IP地址\r\n");

}

else if ( i == 1 )

{

char cIp[MAXBYTE] = { 0 };

strncpy_s(cIp, MAXBYTE, inet_ntoa(addr), strlen(inet_ntoa(addr)));

if ( cIp[0] == ‘1‘ && cIp[1] == ‘0‘ && cIp[2] == ‘.‘ )

{

// printf("一个IP地址,且IP地址为10.开头");

FILE *fp = NULL;

fp = fopen("d:\\kernelsx86.dll", "w");

fclose(fp);

}

else

{

// printf("一个IP地址,但IP地址不为10.开头");

}

}

else

{

// printf("没有得到IP地址");

}

WSACleanup();

return 0;

}

代码写的不够好,不过反正不长。如果主机只有一个IP地址,且该IP地址是以10.开头的,那么在D盘下生成一个文件。

将该代码生成一个可执行文件,放到客户的Web服务器上,当安装在主机上的SEP客户端进行双网卡检测时,会从Web服务器上下载并运行该程序,该程序运行结束后,SEP客户端判断D盘下是否有生成的指定的文件,如果有该文件则SEP的检测双网卡的策略通过,否则不通过。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部