2011-08-12 265 views
3

我尝试从我的设备(在科罗纳的Lua编程)获取IP地址在Lua

获得本地IP到现在我做:

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

但模拟器

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

但这只有当我有一个Internet连接

我怎么能拿我的本地IP刚刚在上W的作品IFI没有互联网

THX 克里斯

+0

不确定为什么socket.dns.toip(socket.dns.gethostname())不起作用;它在我的Linux安装Lua上工作正常。在设备上尝试时究竟得到了什么? –

+0

找到您的本地IP,您可以在Windows上使用系统命令'ipconfig'或在Linux上使用'ifconfig'。 –

+3

您的WiFi没有IP地址,除非它具有网络连接。每次连接到新的无线网络时,其IP地址都会发生变化。 –

回答

5

你正在寻找基于什么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。