sql >> Databáze >  >> RDS >> Sqlserver

Dotaz na shodu IP adresy v SQL Server

Pro stejnou věc jsem použil následující funkci. Zkuste to a mělo by to fungovat i vám.

Ověřuje, zda je IP adresa uživatele mezi rozsahem IP adres nebo ne. Níže uvedený skript vrátí 1, pokud je IP adresa mezi rozsahem, jinak vrátí 0;

CREATE FUNCTION IsIPAddressInRange
(
    @IPAddress varchar(20),
    @StartRange varchar(20),
    @EndRange varchar(20)
)
RETURNS INT
AS
BEGIN
    DECLARE @MAXRANGE BIGINT = 256
    RETURN 
    CASE 
    WHEN PARSENAME(@IPAddress,1) + @MAXRANGE * PARSENAME(@IPAddress,2) + 
    @MAXRANGE * @MAXRANGE * PARSENAME(@IPAddress ,3) + @MAXRANGE * @MAXRANGE * @MAXRANGE * PARSENAME(@IPAddress ,4)
    BETWEEN
    PARSENAME(@StartRange,1) + @MAXRANGE * PARSENAME(@StartRange,2) + 
    @MAXRANGE * @MAXRANGE * PARSENAME(@StartRange ,3) + @MAXRANGE * @MAXRANGE * @MAXRANGE * PARSENAME(@StartRange ,4)
    AND
    PARSENAME(@EndRange,1) + @MAXRANGE * PARSENAME(@EndRange,2) + 
    @MAXRANGE * @MAXRANGE * PARSENAME(@EndRange ,3) + @MAXRANGE * @MAXRANGE * @MAXRANGE * PARSENAME(@EndRange ,4)
    THEN 1
    ELSE 0
    END     
END

Převzal jsem výše uvedenou funkci z ZDE .



  1. Zahrňte číslo řádku jako sloupec do INSERT MySQL

  2. Jak spustit psql.exe

  3. Generování skriptu pro podmnožinu dat

  4. MySQL:Nelze použít SIGNAL v Trigger