Fatto 
Non so se è la soluzione più conveniente ma di sicuro è funzionante:
codice:
function NextIp(ip: string): string;
var
a : TStrings;
i : integer;
buf: string;
begin
a := TStringList.Create;
buf := '';
for i:=1 to Length(ip) do
begin
if (ip[i] <> '.') then
buf := buf+ip[i]
else
begin
a.Add(buf);
buf := '';
end;
end;
a.Add(buf);
for i:=3 downto 0 do
begin
if a[i] = '255' then
a[i] := '0'
else
begin
a[i] := IntToStr(StrToInt(a[i])+1);
Break;
end;
end;
Result := a[0]+'.'+a[1]+'.'+a[2]+'.'+a[3];
FreeAndNil(a);
end;
Basta ciclare questa funzione per quanti sono gli ip della subnet e si ottiene la lista