Da die API-Funktion RtlIpv6StringToAddress() nicht für PB geportet wurde, hab ich mich halt mal rangemacht.
In der MSDN kann man dazu folgenden Code finden:
Code: Alles auswählen
LONG NTAPI RtlIpv6StringToAddress(
__in PCTSTR S,
__out PCTSTR *Terminator,
__out IN6_ADDR *Addr
);
Code: Alles auswählen
Structure in6_addr
StructureUnion
Byte.c[16]
Word.w[8]
EndStructureUnion
EndStructure
Ws2Lib = OpenLibrary (-1,"WS2_32.DLL")
If Ws2Lib
Prototype.l pStrToAddr (S.s, *Terminator.s, *Addr.in6_addr)
Global StrToAddr.pStrToAddr = GetFunction(Ws2Lib, "RtlIpv6StringToAddress")
Else
Debug("WS2_32.DLL could not be opened!")
EndIf
;[...]
Procedure MyIPv6Connection (IPAddress$, Port.u, Mode.i = #TCP)
Protected s.SOCKET = SOCKET_(#AF_INET6, Mode, #Null)
If s <> -1
Protected inf.sockaddr_in6
Debug StrToAddr(IPAddress$, #Null, @inf\sin6_addr) ;;;;;;;;;;;;;
inf\sin6_family = #AF_INET6
inf\sin6_port = htons_(Port)
Debug connect_(s,@inf,SizeOf(inf))
Else
ProcedureReturn #False
EndIf
EndProcedure