找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4686|回复: 6

ACE_INET_Addr的问题

[复制链接]
发表于 2008-5-20 14:41:59 | 显示全部楼层 |阅读模式
如何判断一个ACE_INET_Addr是否是本机?

用ACE_INET_Addr创建本机的地址有好多种:
ACE_INET_Addr local("localhost");
ACE_INET_Addr local(3333, "localhost");
ACE_INET_Addr local(3333, "192.168.....");//自己的ip
可是这三种方法local.get_host_name都不一样,
分别是:
localhost,mycomputer,mycomputer.private等,不知道怎么判断如何判断一个ACE_INET_Addr是否是本机了。

期待指点呵呵~~
发表于 2008-5-20 15:01:49 | 显示全部楼层
本机的IP地址,可以用API取得到,用这个地址去比较即可。
发表于 2008-5-20 15:04:35 | 显示全部楼层
void  GetLocalIPAddr(std::string &ip)
{
WSADATA wsaData;
char name[155];
PHOSTENT hostinfo;
if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 ) {  
  if( gethostname ( name, sizeof(name)) == 0) {
   if((hostinfo = gethostbyname(name)) != NULL) {
    //这些就是获得IP的函数
    ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
   }
  }
  WSACleanup( );
}
}
 楼主| 发表于 2008-5-20 15:12:46 | 显示全部楼层
这个是#include <winsock.h>里的??
跨平台吗
发表于 2008-5-20 15:30:42 | 显示全部楼层
别人写的。
没找到ACE有封装,就自己封装一个跨平台的。
 楼主| 发表于 2008-5-20 15:42:24 | 显示全部楼层
好的~~~


谢啦:)
发表于 2008-5-21 15:42:37 | 显示全部楼层
参考版主以前贴的关于ACE::get_ip_interfaces的帖子。可以取出本机的当前IP地址的列表。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-25 23:56 , Processed in 0.015495 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表