请问如何取得两个地址段之间的所有IP?(100分)

  • 主题发起人 主题发起人 bqylin
  • 开始时间 开始时间
B

bqylin

Unregistered / Unconfirmed
GUEST, unregistred user!
要编写一个ping程序,请问如何取得两个地址段之间的所有IP?
比如说地址段是:61.140.13.25到61.143.25.13,如何取得这个地址段中的所有IP?最好结果能像下面这样排列:

61.140.13.25
61.140.13.26
61.140.13.27
61.140.13.28
61.140.13.29

。。。。。。

61.143.25.11
61.143.25.12
61.143.25.13
 
不是很明白楼祝的意思,我顶一下
 
procedure TForm1.Button3Click(Sender: TObject);
var IP1,IP2:String;
iIP1,iIP2,I:DWORD;
Strs:TStrings;
begin
IP1:='61.140.13.25';
IP2:='61.140.25.13';
Strs:=TStringList.Create;
try
Strs.Delimiter:='.';
Strs.DelimitedText:=IP1;
if Strs.Count<>4 then Exit;
iIP1:=(StrToInt(Trim(Strs[0])) shl 24)
or(StrToInt(Trim(Strs[1])) shl 16)
or(StrToInt(Trim(Strs[2])) shl 8)
or(StrToInt(Trim(Strs[3])));
Strs.DelimitedText:=IP2;
if Strs.Count<>4 then Exit;
iIP2:=(StrToInt(Trim(Strs[0])) shl 24)
or(StrToInt(Trim(Strs[1])) shl 16)
or(StrToInt(Trim(Strs[2])) shl 8)
or(StrToInt(Trim(Strs[3])));
for I:=iIP1 to iIP2 do
Memo1.Lines.Append(Format('%d.%d.%d.%d',[LongRec(I).Bytes[3],
LongRec(I).Bytes[2],
LongRec(I).Bytes[1],
LongRec(I).Bytes[0]]));
finally
Strs.Free;
end;
end;
 
应该就是楼上的意思吧
 
后退
顶部