瀏覽代碼

Quick.Network: New function IPv4ToIntReverse

by Turric4n
Unknown 7 年之前
父節點
當前提交
ac84e9d665
共有 1 個文件被更改,包括 18 次插入2 次删除
  1. 18 2
      Quick.Network.pas

+ 18 - 2
Quick.Network.pas

@@ -5,9 +5,9 @@
   Unit        : Quick.Network
   Description : Network related functions
   Author      : Kike Pérez
-  Version     : 1.1
+  Version     : 1.2
   Created     : 11/07/2017
-  Modified    : 05/10/2017
+  Modified    : 09/10/2017
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -39,6 +39,7 @@ uses
 
   function IntToIPv4(IPv4: LongWord): string;
   function IPv4ToInt(const IPv4: string) : LongWord;
+  function IPv4ToIntReverse(const IPv4: string) : LongWord;
   procedure CIDRToRange(CIDR : string; out MinIP,MaxIP : string); overload;
   procedure CIDRToRange(CIDR : string; out MinIP,MaxIP : LongWord); overload;
   procedure GetIPRange(const cIP, cMask : string; out LowIP, HighIP : string);
@@ -80,6 +81,21 @@ begin
   end;
 end;
 
+function IPv4ToIntReverse(const IPv4: string) : LongWord;
+var
+  S : TStrings;
+begin
+  S := TStringList.Create;
+  try
+    S.Delimiter := '.';
+    S.DelimitedText := IPv4;
+    if S.Count <> 4 then raise Exception.Create('Invalid IP4 Address string');
+    Result := (StrToInt(S[3]) shl 24) + (StrToInt(S[2]) shl 16) + (StrToInt(S[1]) shl 8) + StrToInt(S[0]);
+  finally
+    S.Free;
+  end;
+end;
+
 procedure CIDRToRange(CIDR : string; out MinIP,MaxIP : string);
 var
   Mask : Integer;