1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
program ip6test;
uses
sockets,
unix,
errors,
netdb,
baseunix;
var
dest: TInetSockAddr6;
sock: LongInt;
s: shortstring;
i: integer;
t1,t2:text;
x: array of thostaddr6;
hname : string;
Const
ip6hosttest = 'whatismyv6.com';
begin
hname:=ip6hosttest;
if paramcount>0 then
hname:=paramstr(1);
setlength(x, 100);
i:=resolvename6(hname, x);
if i=-1 then
begin
writeln('Domain not found, ',hname);
halt;
end;
setlength(x,i);
if length(x) = 0 then halt(2);
with dest do begin
sin6_family := PF_INET6;
sin6_port := shorthosttonet(80);
sin6_addr.u6_addr16 := x[0].u6_addr16;
end;
sock := fpsocket(PF_INET6, SOCK_STREAM, 6 {TCP});
if fpConnect(sock, @dest, sizeof(dest))=0 then begin
sock2text(sock,t1,t2);
writeln(t2, 'GET / HTTP/1.0');
writeln(t2);
while not eof(t1) do begin
readln(t1, s);
writeln(s);
end;
end else begin
writeln('not connected: ',socketerror, ': ', StrError(socketerror));
end;
closesocket(sock);
end.
|