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的检测双网卡的策略通过,否则不通过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值