socket中gethostbyname的问题

panpan_117 2014-04-21 08:38:18
正常情况下,通过本地主机名获取本机ip用的是gethostbyname函数,但是我现在用这个函数返回的ip地址不正确。我的网络连接适配器里面有三个网络连接:一个无线的、一个有线的、一个是用vmare装的虚拟机的。当前情况我连接的是无线网卡,按理说调用gethostbyname返回的应该是这个对应的ip。但现在返回的是vmare虚拟机的网卡的ip。求大神
...全文
501 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
panpan_117 2014-04-23
  • 打赏
  • 举报
回复
引用 2 楼 tujiaw 的回复:
gethostbyname返回值是一个地址列表。
引用 2 楼 tujiaw 的回复:
gethostbyname返回值是一个地址列表。
引用 2 楼 tujiaw 的回复:
gethostbyname返回值是一个地址列表。
如何取这个地址列表里面的多个ip?如何获取当前正在使用的网卡ip?
panpan_117 2014-04-23
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
为什么不
system("ipconfg.exe /all >ipconfg.txt");
//然后读文件ipconfg.txt的内容
呢?
这是一个可行的方案,只是对gethostbyname返回值不是当前正在使用的网卡的ip感到奇怪
赵4老师 2014-04-23
  • 打赏
  • 举报
回复
仅供参考
if "%1"=="l" goto l
if "%1"=="w" goto w
echo 网络地址切换批处理
echo    setip l     ——切换到本地连接
echo    setip w     ——切换到无线网络连接
goto e

:l
echo 从无线网络的静态ip切换到有线网络的静态ip:
netsh interface ip set address 无线网络连接 dhcp
netsh interface ip set dns 无线网络连接 dhcp
netsh interface ip set address 本地连接 static 192.168.1.111 255.255.252.0 192.168.2.1 1
netsh interface ip set dns 本地连接 static 202.106.196.115
goto e

:w
echo 从有线网络的静态ip切换到无限网络的静态ip:
netsh interface ip set address 本地连接 dhcp
netsh interface ip set dns 本地连接 dhcp
netsh interface ip set address 无线网络连接 static 192.168.1.5 255.255.255.0 192.168.1.1 1
netsh interface ip set dns 无线网络连接 static 211.97.168.129
goto e

:e
ningto.com 2014-04-22
  • 打赏
  • 举报
回复
gethostbyname返回值是一个地址列表。
赵4老师 2014-04-22
  • 打赏
  • 举报
回复
为什么不
system("ipconfg.exe /all >ipconfg.txt");
//然后读文件ipconfg.txt的内容
呢?

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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