Startseite › Foren › Deutsches LiveCode-Forum › Tip: wie finde ich die interne IP meines Geräts für das lokale Netz (WLAN/LAN)
- Dieses Thema hat 1 Antwort und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren, 7 Monaten von Torsten.
-
AutorBeiträge
-
-
Mai 15, 2021 um 18:52 Uhr #28698
Hi,
ich baue gerade an einer Client-Server-Anwendung und brauche, wenn der Client sich zum Server verbinden soll, natürlich dessen IP im lokalen Netz (nicht die Internet-Adresse nach draussen). Ich habe aber keine Lust, jeweils in den verschiedenen Untermenüs der Netzwerkkonfigurationen zu gucken, also was tun? Livecode das machen lassen 🙂
Nach einigem Suchem im Netz habe ich nun die Puzzleteile zusammen und prösentiere einen Handler, der die interne IP für Windows, Mac und Android liefert 🙂
Aufruf mit: put get_internal_IP()
function get_internal_IP put the platform into tPlatform switch tPlatform case "MacOS" put "ifconfig -a | grep" && quote & "inet " & quote into tCommand put shell(tCommand) into tIP put word 2 of line 2 of tIP into tInternal_IP break case "Win32" set the hideconsolewindows to true put shell("ipconfig") into tData put line lineoffset("IPv4",tData) of tData into tData put the last word of tData into tInternal_IP break case "android" get the networkInterfaces put it into tInterfacesList put the number lines in tInterfacesList into tNumberIpAdresses repeat with tLineNbr=1 to tNumberIpAdresses put line tLineNbr of tInterfacesList into tIPAddress if tIPAddress is not "127.0.0.1" then put tIPAddress into tInternal_IP exit repeat end if end repeat break end switch return tInternal_IP end get_internal_IP
Happy Coding
Torsten -
Mai 15, 2021 um 23:06 Uhr #28703
Livecode ist ja noch viel besser als ich dachte! Ich habe jetzt nochmal herausgefunden, dass man ein und dieselbe Methode für alle Plattformen nehmen kann! Hier also die ultimative Methode (wahrscheinlich auch für Linux und iOS, aber das konnte ich noch nicht testen:
function get_internal_IP put the networkInterfaces into tInterfacesList repeat for each line tInternal_IP in tInterfacesList if tInternal_IP is "127.0.0.1" then next repeat else if tInternal_IP is "0.0.0.0" then next repeat else return tInternal_IP end if end repeat end get_internal_IP
Wie man sieht, geht es über die networkInterfaces, in denen alle verfügbaren IPs sind. Normalerweise ist das immer die 127.0.0.1 = localhost , aber es kann auch mal eine 0.0.0.0 sein. Diejenige, die keine davon ist, sollte die relevante IP sein. Theoretisch könnten es auch noch mehr sein, aber dafür habe ich keinen Beleg (Netzwerkkarte und WLAN gleichzeitig?)
Happy Coding
Torsten
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.