получить IP-адрес в Lua - PullRequest
3 голосов
/ 13 августа 2011

я пытаюсь получить локальный IP с моего устройства (программирование в Corona Lua)

до сих пор я делаю с:

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

, но это работает только на симуляторе

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

но это работает только когда у меня есть подключение к Интернету

Как я могу получить свой локальный IP только в моем Wi-Fi без Интернета

thx chris

1 Ответ

7 голосов
/ 24 января 2012

IP-адрес интерфейса, который вы ищете, может меняться в зависимости от того, с каким IP-адресом вы пытаетесь разговаривать. Код ниже использует IP-адрес Google, чтобы выбрать интерфейс и вернуть IP-адрес. Это работает для меня, используя LUA / luasocket, но я не пробовал это в короне.

require "socket"

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

EDIT:

В этом случае вам не нужен интернет, потому что вы на самом деле ни к чему не подключаетесь или иным образом не отправляете пакеты. Тем не менее, вам понадобится соответствующий интерфейс, чтобы фактически иметь IP.

...