我想做这样的事情:
var
ip,ip2: string;
begin
ip:= '127.0.0.1';
ip2:= ip+1;
end;
执行此代码后,ip2 应为 127.0.0.2
问题是:我怎样才能增加这样的IP地址?
使用 api,作为替代方案:
uses
winsock;
procedure TForm1.Button1Click(Sender: TObject);
var
addr: in_addr;
begin
addr.S_addr := htonl(ntohl(inet_addr('127.0.0.1')) + 1);
ShowMessage(inet_ntoa(addr));
end;
您可以尝试以下方法:
type
TIPAddress = array[0..3] of Byte;
function IncIPAddress(const IPAddress: TIPAddress;
Value: Integer = 1): TIPAddress;
begin
PInteger(@Result)^ := PInteger(@IPAddress)^ + Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
IPAddress: TIPAddress;
IPAddress2: TIPAddress;
begin
IPAddress[3] := 127;
IPAddress[2] := 0;
IPAddress[1] := 0;
IPAddress[0] := 1;
S := Format('%d.%d.%d.%d', [IPAddress[3], IPAddress[2],
IPAddress[1], IPAddress[0]]);
ShowMessage(S);
IPAddress2 := IncIPAddress(IPAddress);
S := Format('%d.%d.%d.%d', [IPAddress2[3], IPAddress2[2],
IPAddress2[1], IPAddress2[0]]);
ShowMessage(S);
end;