私はそのようなことをしたい:
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;