如何用C++编程获得某台机器的IP地址?

2016-02-19 12:23 12 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的如何用C++编程获得某台机器的IP地址?教程,一起来看看吧!超容易上手~

【 tulaoshi.com - 编程语言 】

本文提供的方法是一个比较完整的解决方案,并附有详细的实现细节。其实,如果你熟悉Windows的Sockets API,并了解一些底层的Winsock知识。那么要获得某台机器的IP地址并不是什么难事。一台机器可以装多块网卡,因此它就可能有多个IP地址。目前很多发烧友的PC机都装有多块网卡。其中一块网卡与调制解调器(MODEM)或者ADSL适配器相连,另一块与家里的局域网(LAN)相连。对于有宽带连接条件的家庭,这更是一种典型的配置。任何事情,一旦你知道了解决的方法,一切都会变得如此简单。下面是本文提供的一个简单的控制台程序(程序名为getip1),其功能就是显示本机的IP地址。如图一所示:

图一 getip1的运行画面

下面是 getip1 程序的代码,很简单:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
////////////////////////////////////////////////////////////////
// getip1.cpp
//
// 本程序报告本机上每一块网卡的IP地址
// 命令行编译命令为:
//
// cl getip1.cpp wsock32.lib
//
// 请一定要在环境变量中正确指定LIB库的路径;可以运行vcvars32.bat
//
#include winsock.h
#include wsipx.h
#include wsnwlink.h
#include stdio.h
 
int main()
{
////////////////
// 初始化 Windows sockets API. 要求版本为 version 1.1
//
WORD wVersionRequested = MAKEWORD(1, 1);
WSADATA wsaData;
if (WSAStartup(wVersionRequested, &wsaData)) {
printf("WSAStartup failed %s", WSAGetLastError());
return -1;
}
 
//////////////////
// 获得主机名.
//
char hostname[256];
int res = gethostname(hostname, sizeof(hostname));
if (res != 0) {

                        

来源:http://www.tulaoshi.com/n/20160219/1600773.html

延伸阅读
C/C++语言中有许多对初学者(甚至是有经验的编程人员)来说很轻易范的错误。通晓这样的错误可使你免于陷入其中。 忘记初始化指针 !-- frame contents -- !-- /frame contents -- 这种错误只是一般"忘记初始化变量"错误的一个非凡形式(C/C++中变量不会自动初始化,而Basic可以)。使这种错误更糟糕的原因是它的后果往往更加糟...
作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL "什...
1. 如何获取应用程序的实例句柄? 应用程序的 实例句柄保存在CWinAppIm_hInstance 中,可以这么调用AfxGetInstancdHandle获得句柄. Example: HANDLE hInstance=AfxGetInstanceHandle();  2. 如何通过代码获得应用程序主窗口的指针? 主窗口的 指针保存在CWinThread::m_pMainWnd中,调用 AfxGetMainWnd实现。 AfxG...
标签: 电脑
步骤一 按Win+R打开运行,输入cmd,回车; 步骤二 在命令提示符中输入ipconfig/all,查看当前的IP地址、子网掩码、网关、以及DNS等相关信息; 步骤三 如果显示的IP地址以及DNS和公司与设置不一致,需要进行释放缓存再更新,输入并执行:ipconfig /release,释放IP地址; 步骤四 释放IP地址后,需要重新...
Microsoft Developer Studio为大多数标准的数据库格式提供了32位ODBC驱动器。这些标准数据格式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle以及Microsoft Text。如果用户希望使用其他数据格式,则需要安装相应的ODBC驱动器及DBMS。 用户使用自己的DBMS数据库管理功能生成新的数据库模式后,就可以使用ODBC来登录...

经验教程

97

收藏

12
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部