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.