得到的是哪个IP地址

rediori 2004-04-10 11:03:35
// 获取本机名
gethostname((char*)LocalName, sizeof(LocalName)-1);
// 获取本地 IP 地址
pHost = gethostbyname((char*)LocalName));

用上面的方式获得的可以获得本机的IP地址,
如果有多个网卡多个IP地址,的时候得到的结果是怎么样的?
怎么处理这种情况
...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jessenee 2004-04-11
  • 打赏
  • 举报
回复
xstring(麻雀) 正解
badguy2002 2004-04-11
  • 打赏
  • 举报
回复
得到的是第一个IP地址
itmaster 2004-04-11
  • 打赏
  • 举报
回复
得到的是首选IP地址
xstring 2004-04-11
  • 打赏
  • 举报
回复
如果有多个IP地址,得到的是首选IP地址

如果要获得所有的IP地址

可以这样
char buf [2048];
DWORD dwBytes;
WSAIoctl(s, SIO_ADDRESS_LIST_QUERY, NULL, 0, buf, 2048, &dwBytes, NULL, NULL);
SOCKET_ADDRESS_LIST *slist;
slist = (SOCKET_ADDRESS_LIST*)buf;
for (int i=0;i<slist->iAddressCount;++i)
{
SOCKADDR_IN *psa = (SOCKADDR_IN *)slist->Address[i].lpSockaddr;
// psa指向的内容中就存放着第(i+1)个IP地址信息
};


18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧