5 Stimmen

IP-Adresse in Lua ermitteln

Ich versuche, die lokale IP von meinem Gerät zu erhalten (Programmierung in Corona Lua)

bis jetzt tue ich das mit:

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

aber das funktioniert nur im Simulator

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

aber das funktioniert nur, wenn ich eine Internetverbindung habe

Wie kann ich meine lokale IP nur in meinem Wifi ohne Internet bekommen?

thx chris

9voto

basicer Punkte 308

Die IP der Schnittstelle, die Sie suchen, kann sich ändern, je nachdem, mit welcher IP-Adresse Sie zu sprechen versuchen. Der folgende Code verwendet die IP von Google, um eine Schnittstelle auszuwählen und die IP-Adresse zurückzugeben. Es funktioniert mir für mich mit LUA/luasocket, aber ich habe es nicht in Corona versucht.

require "socket"

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

EDIT:

Sie sollten in diesem Fall kein Internet benötigen, da Sie keine Verbindung zu irgendetwas herstellen oder sonst irgendwelche Pakete senden. Die betreffende Schnittstelle muss jedoch eine IP haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X