使用Lua获取IP地址

我尝试从我的设备中获取本地IP地址(使用Corona Lua编程)

到目前为止,我只使用以下方法:

local myip = socket.dns.toip(socket.dns.gethostname())

但这只适用于模拟器。

local client = socket.connect( "www.google.com", 80 )
local ip, port = client:getsockname()

但这只在我有互联网连接时有效。

我该如何在没有互联网的情况下仅在我的Wifi中获取本地IP?

谢谢 克里斯

原文链接 https://stackoverflow.com/questions/7046291

点赞
stackoverflow用户800316
stackoverflow用户800316

你寻找的接口的 IP 地址可能会根据你要访问的 IP 地址而变化。下面的代码使用 Google 的 IP 来选择一个接口并返回 IP 地址。我用 LUA/luasocket 测试过它,但我还没有在 corona 中尝试过。

require "socket"

local s = socket.udp()
s:setpeername("74.125.115.104",80)
local ip, _ = s:getsockname()
print(ip)

编辑:

在这种情况下,您不需要连接任何东西或发送任何数据包,因此您不需要互联网。但是,您需要确保所需的接口实际上有 IP 地址。

2012-01-23 22:37:59