首页 > 编程语言 > 详细

C++获取主机的IP

时间:2019-12-11 22:53:44      阅读:101      评论:0      收藏:0      [点我收藏+]

1. 参考https://www.cnblogs.com/LyShark/p/9158555.html

技术分享图片
#include<winsock2.h>    //该头文件需在windows.h之前
#include<windows.h>
//#include<string>
#include<iostream>
#pragma comment(lib,"ws2_32.lib") 
using namespace std;

void getIP()
{
    WSADATA WSAData;   //WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。
    if (WSAStartup(MAKEWORD(2, 0), &WSAData)) // 初始化Windows sockets API
    {
        printf("WSAStartup failed %s\n", WSAGetLastError());
        exit(-1);        //异常退出 
    }

    char hostName[256];
    if (gethostname(hostName, sizeof(hostName))) //获取主机名
    {
        printf("Error: %u\n", WSAGetLastError());
        exit(-1);      //异常退出 
    }
    printf("主机名:             %s\n", hostName);

    hostent *host = gethostbyname(hostName);  // 根据主机名获取主机信息. 
    if (host == NULL)
    {
        printf("Error: %u\n", WSAGetLastError());
        exit(-1);
    }

    cout << "主机地址类型:        " << host->h_addrtype << endl
        << "地址清单:            " << host->h_addr_list << endl
        << "别名列表:            " << host->h_aliases << endl
        << "地址长度:            " << host->h_length << endl
        << "正式的主机名:        " << host->h_name << endl;

    for (int i = 0; host->h_addr_list[i] != 0; i++)
    {
        std::string s = inet_ntoa(*(struct in_addr*)host->h_addr_list[i]) ;
    }
    
    WSACleanup();
}

int main()
{
    getIP();
    return 0;
}
View Code

C++获取主机的IP

原文:https://www.cnblogs.com/htj10/p/12025126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!