Tip: wie finde ich die interne IP meines Geräts für das lokale Netz (WLAN/LAN)

Startseite Foren Deutsches LiveCode-Forum Tip: wie finde ich die interne IP meines Geräts für das lokale Netz (WLAN/LAN)

Ansicht von 1 Antwort-Thema
  • Autor
    Beiträge
    • #28698
      Torsten
      Teilnehmer

      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

    • #28703
      Torsten
      Teilnehmer

      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

Ansicht von 1 Antwort-Thema
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.