找回密码
 加入
搜索
查看: 3366|回复: 4

[网络通信] 关于宏@IPAddress1的问题

[复制链接]
发表于 2011-10-25 11:17:52 | 显示全部楼层 |阅读模式
本帖最后由 xms77 于 2011-10-25 11:19 编辑

我用$MC_IP = @IPAddress1来得到本机的IP地址,本身应该没有问题,但是进来发现有时候返回的IP地址竟然是127.0.0.1(网络连接情况没有问题),这可不是我想要的,不知道是怎么回事?有谁知道的说说啊!
发表于 2011-10-25 12:55:53 | 显示全部楼层

@IPAddress1   第一个网络适配器的 IP 地址.在某些电脑上可能会返回 127.0.0.1 

帮助文档里写了哦。。在某些电脑上可能会返回127.0.0.1
发表于 2011-10-25 13:55:46 | 显示全部楼层
回复 1# xms77

跟踪了下,这个宏是调用gethostname(),然后利用此函数得到的主机名再调用gethostbyname()函数来得到IP地址的。而它们都是个Socket API函数。而用Socket取主机名,在有些情况下(如:机子没有在局域网上,是个单机)就可能取到Localhost,于是就会得到127.0.0.1的ip名了。这个时候,你循环下,用@IPAddress2, @IPAddress3之类的,先取到的,就是你的真实ip了
微软的DevER已经建议用getaddrinfo 函数取代gethostbyname了,这样还能取到IPv6的地址

评分

参与人数 2金钱 +48 贡献 +2 收起 理由
xms77 + 40 + 2 感谢,看来你是研究过了
lynfr8 + 8

查看全部评分

发表于 2011-10-25 14:53:19 | 显示全部楼层
回复 3# happytc

顶,感谢解释宏相关的内容
发表于 2011-10-25 20:28:38 | 显示全部楼层
这个值得学习,正需要呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 15:11 , Processed in 0.081573 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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