eigene öffentliche-IP ermitteln

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: eigene IP ermitteln

Beitrag von joergd »

zille9 hat geschrieben:Jetzt bin ich aber auch perplex, wie schnell Du Dich in die neuen Funktionen von Trios-Basic eingearbeitet hast.
Die gute Dokumentation hat da sehr geholfen.
zille9 hat geschrieben:Genau für solche Sachen war die XBUS-Funktion gedacht.
Ja, damit kann man den Hive komplett ausreizen, ohne daß das Basic alle Funktionen direkt implementiert. Wobei ich natürlich perspektivisch für den Einbau von Kommandos zur Netzwerk-Kommunikation ins Basic wäre.
PIC18F2550 hat geschrieben: kommt da in etwa so was Raus?

Code: Alles auswählen

<?php
  $ip = $_SERVER['REMOTE_ADDR'];
  echo $ip;
?>
So in etwa wird das beim benutzten Dienst (http://ipecho.net/plain) umgesetzt worden sein.
PIC18F2550 hat geschrieben:"GET /plain "
"HTTP/1.0{NL}{AF}"
"Host: "
"ipecho.net{NL}{AF}{NL}{AF}"
Ja, das ist das, was im ASCII-Code der XBUS-Zeilen steckt. Nur auf Grund der maximalen Basic-Zeilenlänge komisch aufgeteilt. Korrekt siehts so aus:

Code: Alles auswählen

GET /plain HTTP/1.0
Host: ipecho.net

PIC18F2550 hat geschrieben:Da breuchte ich immer noch einen anderen Server der mir antwortet. Geht das auch ohne?
Du könntest versuchen, die externe IP aus Deinem Router auszulesen. Das geht aber bei jedem Router, wenn überhaupt, anders. Abgesehen davon (wie U-Held gerade auch geschrieben hat): Wozu willst Du Deine eigene externe IP wissen? Für ein serverloses P2P-Netz müßtest Du ja eher die externen IPs anderer Hives kennen. Und das ist ohne etwas ständig Verfügbares mit einer festen IP (also einem Server) schwierig.
Viele Grüße

Jörg
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: eigene IP ermitteln

Beitrag von PIC18F2550 »

Hi U-Held,

aus den oben Antworten habe ich mal versucht eine Lösung zu ersinnen.

Der Hintergedanke liegt in einem Netz wo kein mir unbekannter Server Informationen erhällt ob ich online binn oder nicht mit ausnahme meines Providers.

Die freien Seiten sind eine schöne sache aber zu häufiges Abfragen ( mehr als 10x in 1h) führt dann aber auch zur 24h Sperrung.

Für Messenger sind die Zwangstrennungen dann ein Problem.

Mann könnte auch einen Server mit statischer IP oder eine DynDns einrichten aber die Kosten und abhängigkeiten will ich gerade nicht.

Hintergrund ist die vernetzung mehrerer HIVES mit einer Tabelle mit volgenden Aufbau.

HIVE_NR wordformat
TIME_STAMP wordformat
INET_IP longformat

Da nicht alle Provider gleichzeitig die Trennung durchführen kann ich vermutlich meine neue IP über einen anderen HIVE zurückerhalten.
Gibt es im eine möglichkeit das so abzufragen?

EDIT----------------------------------------------------------------------------------------------------------------------------
Eigendlich müste die Funktion schon im Webserver stecken da er ja die IP von der gegenseite braucht.
Habe aber nicht die Stelle im Quellcode gefunden :x
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: eigene IP ermitteln

Beitrag von joergd »

Ich verstehe immer noch nicht, wozu Du nach z.B. einer Zwangstrennung Deine eigene externe IP-Adresse wissen willst. Wenn Du von einem gerade zwangsgetrennten Hive (Hive1) eine Verbindung zu einem anderen Hive (Hive2) aufbauen willst, muß Hive1 die Adresse von Hive2 kennen. Hat er die bereits vor der Zwangstrennung gekannt, kennt er die auch nach der Zwangstrennung noch und kann sich wieder mit Hive2 verbinden. Für Hive2 ist das dann erstmal eine neue Verbindung, da sich die Absenderadresse (vom Hive 1) geändert hat. Die (neue) IP-Adresse vom Hive1 steht in jedem IP-Paket, welches Hive2 von Hive1 empfängt. Ein Webserver auf Hive2 muß die aber auch nicht kennen, da das Handling über den darunterliegenden Socket erfolgt. Ein Socket hat eine Nummer, nur diese spricht der Webserver an. In der Socketverwaltung des IP-Stacks erfolgt die Zuordnung der Socket-Nummer zu Absender-Adresse und -Port und Empfänger-Adresse und -Port.

Die Absender-IP braucht man also normalerweise nicht. Willst Du die doch speichern, mußt Du die irgendwie aus driver_sockt.spin rausbekommen. Eine Funktion dafür gibts nicht. Ich schätze mal, die steckt in lSrcIp[handle].
Viele Grüße

Jörg
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: eigene IP ermitteln

Beitrag von PIC18F2550 »

nochmal.

Beispiel : Netzwerk 3 HIVEs (A B C)

Bei Start kennt keiner die IP des Anderen und auch nicht seine Eigene.

Zum Start des Netzwerkes wird die IP von A an B & C eingegeben.
B & C wissen nichts von einander.

Beim Abfragen von A werden die IP's von B & C in A eingelesen (Datenbank) und anschlißend an B & C als (Datenbank) übertragen
Jetzt kennt B auch C. soweit sogut.

Jetzt bekommt A eine Neue IP und B ist nicht erreichbar( Funkloch :D )

A kennt von B noch die IP bekommt aber ein Time out. :o

A kennt auch von C die IP und sendet eine Datenbankabfrage dabei wird die neue IP in die Datenbank eingetragen.

B kommt aus dem Funkloch und kann noch mit C Kommunizieren dabei wird die Aktuelle Datenbank von C nach B übertragen.
Damit ist B wieder in der Lage mit A zu Kommunizieren.

Der Hintergrund ist ein sich selbstständig Serverloses reconfigurierendes Netzwerk.
Zur teilnahme wird nur eine einzige gültige IP aus dem Netzwerk benötigt der Rest erledigt sich von selbst.

:JUBELN

Wenn sich die IP eines Servers ändert kann ich ihn auch nicht ansprechen außer ich kenn die Neue.
Das System verhält sich so wie Server und Explorer auf einem rechner und das ganze 2x wo mit dem Explorer des einem der server des 2. abgefragt wird.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Zeus
Beiträge: 142
Registriert: Di 31. Jan 2012, 23:06
Wohnort: Stuttgart

Re: eigene IP ermitteln

Beitrag von Zeus »

Jetzt bekommt A eine Neue IP und B ist nicht erreichbar( Funkloch :D )

A kennt von B noch die IP bekommt aber ein Time out. :o

A kennt auch von C die IP und sendet eine Datenbankabfrage dabei wird die neue IP in die Datenbank eingetragen.
Das kann aber nur funktionieren, wenn alle Hives öffentliche IP-Adressen haben. Ansonsten wird der Router von C die Anfrage von A blocken, da neue/unbekannte IP.
Antworten