2011-08-12 203 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。