Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   [iOS] Ipv6 in DataSnap dynamisch nutzen (https://www.delphipraxis.net/190436-%5Bios%5D-ipv6-datasnap-dynamisch-nutzen.html)

DeddyH 4. Okt 2016 08:50

[iOS] Ipv6 in DataSnap dynamisch nutzen
 
Ich habe hier eine App, die mit DataSnap arbeitet. Nun stehe ich vor dem Problem, dass der zu kontaktierende Server frei einzugeben ist und ich somit nicht weiß, ob es sich um Ipv4 oder Ipv6 handelt; Apple besteht ja jetzt darauf, dass eine App auch in Ipv6-only Netzwerken funktioniert. Gerade habe ich irgendwo gelesen, dass man für Ipv6 die Adresse in eckige Klammern einschließen soll. Daher mein Gedankengang: enthält die eingegebene Server-Adresse einen Doppelpunkt, müsste es eine Ipv6-Adresse sein, ich setze also eckige Klammern drum herum, ansonsten lasse ich es (müsste ja dann Ipv4 oder FQDN sein). Hat das schon jemand gemacht und kann das bestätigen, oder geht das evtl. auch ganz anders?

Darlo 4. Okt 2016 08:54

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Hi,

die eckigen Klammern sind soweit ich weiß dafür da, dass der Port von der URL unterschieden werden kann.

DeddyH 4. Okt 2016 08:59

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Das mag sein, ist aber auch nur bei Ipv6-Notation notwendig, ansonsten enthält die URL ja keine Doppelpunkte.

Valle 4. Okt 2016 10:07

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Zitat:

Zitat von Darlo (Beitrag 1349639)
die eckigen Klammern sind soweit ich weiß dafür da, dass der Port von der URL unterschieden werden kann.

Vom Host, nicht von der URL.

@DeddyH: In welchem Format kommen die Verbindungsdaten denn rein und in welchem benötigst du sie? Ich denke die beste Option wäre es, die Unterscheidung zwischen IPv4 und IPv6 gar nicht erst zu machen und stattdessen komplett transparent für dich zu arbeiten – falls das denn geht.

Brauchst du also beispielsweise einen String für Hostname/IP und einen Integer für den Port, dann leg lieber zwei Felder an und kümmer dich nicht um dessen Format. Ich vermute gerade, dass du ein Feld hast, in welchen der Benutzer "example.com:1234" eingeben kann und du das anhand des Doppelpunkts dann aufsplittest?

Zusätzlich gibt es noch das Problem, dass man bei Eingabe eines Hosts statt einer IP nicht ohne DNS Lookup überhaupt sehen kann, ob IPv4 oder IPv6 verwendet wird. Auf unixoiden Systemen lässt sich dann zusätzlich auch die Präferenz beider Protokolle einstellen (Standardmäßig natürlich v6), was die Ermittlung weiter natürlich noch mehr erschwert. Oder warum musst du wissen ob IPv4 oder IPv6 verwendet wird?

DeddyH 4. Okt 2016 10:42

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Es geht darum, dass Apple ja seit Juni vorschreibt, dass eine App auch in einem IPv6-only Netzwerk zu funktionieren hat. Die Apple-Tester selbst versuchen es anscheinend in einem reinen IPv6-LAN. Meine App soll aber natürlich auch zu IPv4 kompatibel bleiben, daher suche ich einen Weg, wie ich beide Welten bedienen kann. Nach einiger Recherche bin ich halt auf die eckigen Klammern gestoßen und orientiere mich derzeit an diesem Thread: http://community.embarcadero.com/ans...ap-driver-ipv6

[edit] Achja: IP und Port sind 2 getrennte Eingabefelder, es sind in DataSnap auch 2 verschiedene Parameter. [/edit]

Valle 4. Okt 2016 12:51

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Das hast du eigentlich oben schon alles so geschrieben. Ich verstehe aber nicht was du jetzt dafür tun musst. An welcher Stelle ist die Umsetzung für IPv4/IPv6 denn nicht transparent? Ich kenne aber auch DataSnap nicht, vielleicht steh ich deshalb auf dem Schlauch.

Ich bin es gewohnt im Prinzip so zu arbeiten:

Code:
connection = Connection(host, port)
connection.send_data()
connection.receive_data()
Ob da IPv4 oder IPv6 verwendet wird ist völlig transparent für mich.

DeddyH 5. Okt 2016 07:10

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Das hätte ich auch erwartet, leider scheint DataSnap an dieser Stelle nicht so transparent zu sein.

Enno291 15. Nov 2016 21:54

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Hallo,

hast Du mittlerweils eine Lösung gefunden. Meine Apps werden auch abgelehnt wegen ipv6. Ich schätze das wars mit apple. Muss mich nun leider auf andriod konzentrien, die haben eh mehr user ;-)

Grüße Enrico aus Halle

DeddyH 16. Nov 2016 06:37

AW: [iOS] Ipv6 in DataSnap dynamisch nutzen
 
Ja, wie im verlinkten Thread schließe ich den Hostnamen bzw. die IP in eckige Klammern ein, das ist im AppStore auch so durchgegangen.
Code:
http://10.20.30.40:12345
wird zu
Code:
http://[10.20.30.40]:12345


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz