如何得到本机的真正的IP地址(互联网的IP地址)而不是网卡的? 我看msdn上说,在多网卡的机器上,用gethostbyname()可以得到一个地址列表,如果可以的话,加上modem应该也是可以的。但我看了半天,没看出来怎么得到列表 :( 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在本机的IP地址列表中,是不是最后一个是互联网的IP地址(不是网卡的). 如果是编程的话,在有网卡和MODEM的机器上应该需要判断设备类型,我没有试过,不知道。 hostent中就包含了本机的所有IP啊。看看hostent结构的定义吧。 strIPAddr=inet_ntoa(*(struct in_addr *)hn->h_addr_list[x]);在h_addr_list[x]中,你把他放到FOR中一个一个地读就可以了 我通过局域网上网,也只返回一个IP地址。>>ZHLMNET(游水去喏!!!!) 麻烦问一下怎么取h_addr_list[x]的x,新手讨教,请勿嫌弃。 如果你用moden上网,一般最后一个地址就是分配给你的地址。h_addr_list是一个指针数组,可以通过他对指向是否为空来判断是不是到了最合一个。 老掉牙的问题http://www.csdn.net/expert/topic/134/134217.shtmhttp://www.csdn.net/expert/topic/139/139170.shtm...... /*得到拨号网络的本地地址*/unsigned long GetLocalIP(){ unsigned long re=0; RASCONN conn; conn.dwSize=sizeof(RASCONN); DWORD size,count; if(RasEnumConnections(&conn,&size,&count)==0) //取得拨号连接 { RASPPPIP ip; ip.dwSize=sizeof(RASPPPIP); size=ip.dwSize; int err=RasGetProjectionInfo(conn.hrasconn,RASP_PppIp,&ip,&size); if(err==0) //取得IP地址 { if(ip.dwError==0) re=inet_addr(ip.szIpAddress); } } return re;} CListCtrl 图标设置问题 请大家帮帮忙!!! 如何 隐藏 和显示 菜单项 紧急... 写过串口通信的麻烦进来一下 散分 谁能给我一段在互联网上进行多播的代码? vc写com组件,我传递HWND类型为什么VB老是报告自动化类型出错 有谁知道www.vckbase.com怎么上不了??? Microsoft Studio.net现在出正式版了没有? 基于windows下的http服务器的实现 c++多文件结构的头文件问题 高手看过来!-- 怎样在获取某种文件格式的右键菜单? 关于Socket编程的几个问题
我没有试过,不知道。
在h_addr_list[x]中,你把他放到FOR中一个一个地读就可以了
>>ZHLMNET(游水去喏!!!!)
麻烦问一下怎么取h_addr_list[x]的x,新手讨教,请勿嫌弃。
h_addr_list是一个指针数组,可以通过他对指向是否为空
来判断是不是到了最合一个。
http://www.csdn.net/expert/topic/134/134217.shtm
http://www.csdn.net/expert/topic/139/139170.shtm
......
unsigned long GetLocalIP()
{
unsigned long re=0;
RASCONN conn;
conn.dwSize=sizeof(RASCONN);
DWORD size,count;
if(RasEnumConnections(&conn,&size,&count)==0) //取得拨号连接
{
RASPPPIP ip;
ip.dwSize=sizeof(RASPPPIP);
size=ip.dwSize;
int err=RasGetProjectionInfo(conn.hrasconn,RASP_PppIp,&ip,&size);
if(err==0) //取得IP地址
{
if(ip.dwError==0)
re=inet_addr(ip.szIpAddress);
}
}
return re;
}