如何在Delphi中按给定数量增加IP地址?

Lea*_*dri 1 delphi ip delphi-7

我想做那样的事情:

var
ip,ip2: string;
begin
ip:= '127.0.0.1';
ip2:= ip+1;
end;
Run Code Online (Sandbox Code Playgroud)

执行此代码后,ip2应为127.0.0.2

问题是:如何增加这样的IP地址?

Ser*_*yuz 12

使用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;
Run Code Online (Sandbox Code Playgroud)


TLa*_*ama 8

您可以尝试以下方法:

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;
Run Code Online (Sandbox Code Playgroud)