Ich verwende, was ich vermute, eine "hart codierte" Adresse
Ja. "Hardcoding" bedeutet, die Informationen direkt in den Code einzufügen, anstatt indirekte Mittel (wie DNS oder einfache Konfigurationsdateien) zu verwenden. Dies ist ein allgemeiner Begriff und nicht auf IP oder Netzwerk beschränkt.
Wenn Ihre connect () - Anrufe direkt auf eine IP-Adresse verweisen - dann ja, Sie verschlüsseln die Adresse. Wenn sich die Adresse ändert, müssen Sie das Programm erneut kompilieren.
Sind IPV6-Adressen immer dynamisch?
Nein. Sowohl IPv4 als auch IPv6 folgen den gleichen allgemeinen Regeln:
Ob Ihr ISP Ihnen statische oder dynamische Adressen zur Verfügung stellt, hängt ganz davon ab, welchen Vertrag Sie mit ihm unterschreiben (einschließlich des von Ihnen gewählten Plans usw.).
Für private und kleinere Geschäftsverbindungen werden Adressen vom ISP gemäß den Richtlinien des ISP zugewiesen. Möglicherweise erhalten Sie eine öffentliche IPv4-Adresse oder ein Dutzend, Sie erhalten möglicherweise eine IPv6 / 64- oder eine / 48-Zuordnung. Diese Zuweisungen sind statisch oder ändern sich täglich - alles hängt von dem Vertrag ab, den Sie beim ISP unterzeichnet haben.
Wie Sie Ihren Servern und anderen Computern in Ihrem LAN Adressen zuweisen, hängt ganz von Ihnen ab. Wenn Sie möchten, dass die Adresse eines Geräts statisch bleibt, können Sie dies tun.
Es stimmt, dass die dynamische Zuweisung über SLAAC in IPv6 etwas häufiger ist als DHCP in IPv4. Dynamisch bedeutet jedoch nicht, dass sich die Adresse ändert. Mit IPv6-SLAAC wählt das gleiche Gerät normalerweise immer die gleiche Adresse.
Schließlich können Sie keine feste Adresse für das Gerät manuell konfigurieren. In IPv6 ist dies völlig normal.
Oder um zu einem IPV6-Netzwerk zu wechseln, müsste ich eine statische IPV6-Adresse für den Hardcode in meine Anwendung bekommen?
Sie sollten bestimmte Adressen in Ihrer Anwendung von vornherein nicht hartcodieren.
Ich denke, ich habe mich mehr gefragt, wie man das harte Codieren einer Adresse in eine Anwendung vermeidet
Platzieren Sie sie außerhalb der Anwendung. Die zwei häufigsten Methoden sind:
Verwenden von DNS - das heißt, einen Domänennamen so konfigurieren, dass er auf Ihren Server verweist;
Bereitstellen eines Konfigurationsmechanismus - beispielsweise eine INI-Datei, die Registry oder etwas anderes.
Ich denke, ich müsste einen Domainnamen bekommen ... und dann einen DNS-IPV6-Namen in meine Anwendung "hard code"
Ja. Sie kodieren immer noch etwas (den Domänennamen), aber zumindest ändert sich der Domänenname wahrscheinlich weniger - während die IP-Adresse eines Servers viele Gründe haben kann, geändert zu werden. (Beispielsweise kann der Server an einen anderen Standort verschoben werden, oder sein gesamtes Netzwerk wird umstrukturiert oder zu einem anderen ISP gewechselt.)
Obwohl ich sagen würde, dass es nicht so etwas gibt wie "DNS-IPv6-Namen". Ein Domänenname kann sich gleichzeitig auf IPv4- und IPv6-Adressen beziehen und kann sogar mehrere Adressen desselben Typs enthalten.
Ein gut geschriebenes Programm versucht alle gefundenen Adressen (z. B. mit Hilfe der Funktion getaddrinfo ()). Dadurch kann es sowohl in reinen IPv4- und IPv6-Netzwerken als auch in gemischten Netzwerken verwendet werden.