请选择 进入手机版 | 继续访问电脑版
微信扫一扫 分享朋友圈

已有 819 人浏览分享

开启左侧

想获取本机IP地址 程序员教你用C++轻松搞定

[复制链接]
819 2
C语言永远不会过时
其实学编程关键是学习其思想,如果你精通了一门,再去学其他的时候也很容易上手。C不会过时的,尤其是在unix、linux操作平台上,学好C是必须的。
C跟C++在很多方面也是兼容的,c是c++的基础。
再者c能从很大的程度上帮你了解计算机的发展史,数据结构等方面的知识,很多软件、甚至操作系统中的很大部分是用c来实现的。
还有一些电器芯片的程序,比如电冰箱内制冷系统……可以说用c可以解决一切可能遇到的问题,关键是你要能精通它。
所以放开手脚去大胆的学吧,c永远不会过时
代码如下
[mw_shl_code=cpp,true]#include <winsock2.h>

#include <iostream>

using namespace std;

#pragma comment(lib, "WS2_32.lib")

void getIP()

{

WSADATA WSAData; //WSADATA结构被用来储存调用AfxSocketInit全局函数返回的Windows Sockets初始化信息。

if (WSAStartup(MAKEWORD(2, 0),&WSAData)) // 初始化Windows sockets API

{

printf("WSAStartup failed %s ", WSAGetLastError());

exit(-1); //异常退出

}

char hostName[256];

if(gethostname(hostName,sizeof(hostName))) //获取主机名

{

printf("Error: %u ", WSAGetLastError());

exit(-1);

}

hostent *host=gethostbyname(hostName); // 根据主机名获取主机信息(含IP)

if(host==NULL)

{

printf("Error: %u ", WSAGetLastError());

exit(-1);

悟空楼主

cout<<"正式的主机名: "<<host->h_name<<endl
<<"主机地址类型: "<<host->h_addrtype<<endl
<<"地址清单: "<<host->h_addr_list<<endl
<<"别名列表: "<<host->h_aliases<<endl
<<"地址长度: "<<host->h_length<<endl;
for(int i=0;host->h_addr_list!=0;i++)
{
cout<<"该主机IP"<<i+1<<": "<<inet_ntoa(*(struct in_addr*)*host->h_addr_list)<<endl;
}
WSACleanup();
}
int main()
{
getIP();
system("pause");
return 0;
}


}[/mw_shl_code]



不积跬步,无以至千里

评论 2

japanphone  初级码农Ⅰ  发表于 2018-7-5 12:56:01 | 显示全部楼层
{:4_110:}{:4_110:}{:4_110:}{:4_110:}{:4_110:}{:4_110:}

举报 使用道具

回复
daowuya  初级码农Ⅰ  发表于 2018-7-19 15:04:22 | 显示全部楼层
从零开始学编程 ,新手学编程的好地方!

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

37

粉丝

1150

主题
热门资讯
网友晒图
图文推荐
  • 联系我们
  • 邮箱:admin@c0ks.com(请把#改成@)
  • 电话:18530790808
  • QQ客服 1031180668
  • 工作时间:周一至周五(早上9点至下午5点)
  • 微信二维码

  • 扫描访问手机版

Archiver|手机版|小黑屋|从零开始

GMT+8, 2020-5-26 01:21 , Processed in 0.087831 second(s), 40 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

  • QQ: 1031180668

    客服电话

    18530790808

    电子邮件

    admin@c0ks.com

    在线时间:8:00-16:00