在Lua获取IP地址

时间:2011-08-12 21:02:04

标签: sockets networking lua corona

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

到现在为止我做了:

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

但这仅适用于模拟器

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

但这仅在我有Internet连接时才有效

如何在没有互联网的Wifi中获取本地IP

THX 克里斯

1 个答案:

答案 0 :(得分:7)

您正在寻找的接口的IP可能会根据您尝试与之通话的IP地址而改变。下面的代码使用谷歌的IP来选择一个接口并返回IP地址。 它对我使用LUA / luasocket起作用,但我还没有在日冕中尝试过它。

require "socket"

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

修改

在这种情况下,您不应该需要互联网,因为您实际上并未连接任何内容或以其他方式发送任何数据包。但是,您需要有问题的界面才能真正拥有IP。