[fpc-pascal]getting my local ip
Michael Van Canneyt
michael.vancanneyt at wisa.be
Fri Mar 15 16:12:19 CET 2002
On Fri, 15 Mar 2002, ron wilson wrote:
> ok - thats what i thought - so they both point to the same memory area. my
> question is this then: how do i access the list. i guess my pascal syntax
> is too far gone. i understand pointers pretty well, but in this case, i'm
> lost. what we have here is a pointer to pchar - ^pchar. so to access the
> first pchar in the list i would code this:
>
> program test;
> var
> pc: pchar;
> h: hostent;
> begin
> /* fill h here */
> pc:=stralloc(sizeof(h.h_addr_list^));
> strpcopy(pc,h.h_addr_list^);
> writeln(pc);
> end.
No, no. You can use the fact that a pointer can be considered as a
pointer to an array.
I:=0;
While h.h_addr_list[i]<>Nil do
begin
PC:=h_addr_list[i]; // Get pchar pointer
S:=StrPas(pc); // Convert to pascal string.
// Do something with S.
inc(i)
end;
Have a look at the inet unit, the GetAlias method. It does exactly the
same for Linux.
Michael.
More information about the fpc-pascal
mailing list