BSTR CamUtilsCtrl::GET_TERM_IP(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

CString strResult;

// TODO: 在此添加调度处理程序代码
WSADATA wsaData;
WORD sockVersion = MAKEWORD(2,2);
//初始化socket环境
if(::WSAStartup(sockVersion,&wsaData)!=0)
{
tracelog3(LOG_INFO,"WSAStartup failed.ErrorCode=%d",GetLastError());
exit(0);
}

//获得主机名称
char szHost[256]={0};
::gethostname(szHost,256);
tracelog3(LOG_INFO,"主机名=%s",szHost);
//获得主机名称下的网络信息
hostent *pHost = ::gethostbyname(szHost); //返回指定主机名的包含主机名字和地址信息的hostent结构的指针
/*struct hostent
{
char *h_name; //正式主机名
char ** h_aliases; //主机别名
short h_addrtype; //主机IP地址类型:IPV4-AF_INET
short h_length; //主机I票地址字节长度,IPV4是4字节,即32位
char ** h_addr_list; //主机的IP地址列表
};*/

//处理获得的网络信息
in_addr addr;
CString strTmp,strBuf;
for(int i=0;;i++)
{
char *p = pHost->h_addr_list[i];
if(p==NULL)
break;
memcpy(&addr.S_un.S_addr,p,pHost->h_length);
char *slzp = ::inet_ntoa(addr); //将sin_addr储存的IP(数值)转换成字符串形式(127.0.0.1)
strBuf = slzp;
strTmp.Append((strBuf+"|"));
}
//关闭socket环境
::WSACleanup();
strTmp.TrimRight("|");
//EVTFSNMESSAGE(strTmp);
strResult = strTmp;

return strResult.AllocSysString();
}

windows下用C++获取本机IP地址的更多相关文章

  1. windows下用C++修改本机IP地址

    两种方法 第一种.使用DOS命令(即时生效) 第二种.修改注册表(重启生效) 1.打开SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards ...

  2. Windows下获取本机IP地址方法介绍

    Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...

  3. QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址

    获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...

  4. Linux下获取本机IP地址的代码

    Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...

  5. java获取本机IP地址

    转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...

  6. python获取本机IP地址

    方法一 通常使用socket.gethostname()方法即可获取本机IP地址,但有时候获取不到(比如没有正确设置主机名称) import socket #获取计算机名称hostname=socke ...

  7. 详谈再论JAVA获取本机IP地址

    首先,你如果搜索“JAVA获取本机IP地址”,基本上搜到的资料全是无用的.比如这篇:http://www.cnblogs.com/zrui-xyu/p/5039551.html实际上的代码在复杂环境下 ...

  8. 获取本机IP地址

    这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...

  9. 关于是用dotnet获取本机IP地址+计算机名的方法

    印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...

随机推荐

  1. 元素的定位id和name

    1.元素定位: 元素的定位是自动化测试的核心,要想操作一个元素,首先应该识别这个元素 webdriver提供了一系列的元素定位方法,常用的有以下几种 id name class name partia ...

  2. 网站连接数据库连接不上原因是ip地址与端口号格式不对

    192.168.1.1:8080这样连接一直出错, 后来改为192.168.1.1,8080就可以了 原因是格式不对,把冒号给为逗号就可以了

  3. Spring/AOP框架, 以及使用注解

    1, 使用代理增加日志, 也是基于最原始的办法 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; ...

  4. ECMAScript6新特性之继承

    class Animal{ constructor(name){ this.name = name; } get name(){ return this._name; } set name(val){ ...

  5. Android Studio和SDK下载、安装和环境变量配置

    win10下Android Studio和SDK下载.安装和环境变量配置                                                               - ...

  6. 【Python基础教程第2版】——第一讲:基础知识

    1.长字符串:(用三引号如'''或者"""来引起来) >>> print """This is a very log st ...

  7. AndroidStudio 导包遇到so文件的解决方案----------JPush推送

    最近遇到 Couldn't load jpush175 from loader dalvik.system.PathClassLoader 这样一个问题 它说的是AS不能找到库文件 发生在于像Ecli ...

  8. 三、oracle 用户管理一

    三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...

  9. PowerDesigner :

    P:是否为主键: F:是否为外键: M:表示强制非空: D:是否在模型中显示 修改样式.字体.颜色.等:Tools->Display Preferences->Format-> Po ...

  10. Java NIO系列教程(四) Scatter 和 Gather

    Java NIO系列教程(四) Scatter 和 Gather Java NIO 开始支持 scatter/gather,scatter/gather 用于描述从 Channel(译者注:Chann ...