多个ip地址获取

#include "stdafx.h"
#include <stdio.h>
#include <winsock.h>
#include <windows.h>
#include <string.h>

void main()
{
 struct hostent *thishost;
 struct in_addr in;
 char MYName[80];
 char *Ptr;
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
    int i,n;  //循环变量

 wVersionRequested=MAKEWORD(2, 0);    //设置winsock版本
 err = WSAStartup(wVersionRequested, &wsaData);  //启用winsock支持(增加winsock引用计数)
 if(err != 0)
 {
  exit(0);
 }
 gethostname(MYName, 80);    //取得主机名
 thishost = gethostbyname(MYName);    //取得主机的信息(IP等)
 memset((void *)&in, sizeof(in), 0);
 
 //取得循环次数(IP地址数)
 n=strlen(*thishost->h_addr_list);
    n=n/2;

 for(i=0;i<n;i++)
 {
  in.s_addr = *((unsigned long *)thishost->h_addr_list[i]);
  Ptr = inet_ntoa(in);
        printf("IP地址%d:%s",i+1,Ptr);
 }

 WSACleanup();    //卸载winsock动态库(减少引用计数)
}
 
原文:https://blog.csdn.net/paopaoc/article/details/562447
 

猜你喜欢

转载自www.cnblogs.com/hshy/p/11124547.html
今日推荐