Die Standard-Schnittstelle für die IP-Netzwerkprogrammierung ist die socket-API. Ursprünglich unter BSD-Unix entwickelt, ist sie heute auf einer Vielzahl von Betriebssystemen verfügbar.
Die socket-API wurde für IPv6 erweitert, wobei Kompatibilität mit IPv4 besteht. Das Prinzip der Programmierung und der Anwendung verschiedener Funktionen hat sich nicht verändert, so daß bestehende Anwendungen mit geringem Aufwand auf IPv6 portiert werden können. Die Funktionen zum Erzeugen von Verbindungen und zum Versenden von Daten sind von vornherein protokollunabhängig.
Die Erweiterungen der socket-API betreffen drei Bereiche:
Es wurde eine neue Adreßstruktur für die Verwaltung von IPv6-Adressen eingeführt, die als Parameter an die bekannten Funktionen der socket-API übergeben werden kann. Für die Auflösung von Namen zu Adressen und umgekehrt wurden neue POSIX-Funktionen getaddrinfo() und getnameinfo() definiert, die unabhängig vom verwendeten Protokoll sind. Zur Konversion zwischen ASCII- und Binär-Format von Adressen sind neue Funktionen inet_ntop() und inet_pton() entwickelt worden [17].
Diese Erweiterungen wurden durchgeführt und sind seit längerem im Einsatz. Der größte Teil der Netzwerkprogramme unter Unix ist bereits auf IPv6 portiert worden. Die Programmierung von ''fortgeschrittenen'' Anwendungen wie z.B. traceroute, Routing-Dämonen und ähnlichen, die direkten Zugriff auf Datenpakete und deren Köpfe benötigen, wird in [18] beschrieben.
Eine Einführung in die Netzwerk-Programmierung unter Berücksichtigung von IPv6 bietet [5].