sql >> Databasteknik >  >> RDS >> Sqlserver

Fråga för matchande IP-adress i SQL Server

Jag använde följande funktion för samma sak. Prova det och det borde fungera för dig också.

Den verifierar om användarens IP-adress ligger mellan IP-adresserna eller inte. Nedanstående skript returnerar 1, om IP-adressen är mellan intervallet, annars returnerar det 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

Jag tog funktionen ovan från HÄR .



  1. mysql_insert_id problem vid samtidig infogning av data

  2. JDBC-drivrutinen hittades inte fel i monkeyrunner/jython

  3. Hur man sätter ett värde i flera kategorier

  4. $wpdb->uppdatering eller $wpdb->insert resulterar i att snedstreck läggs till framför citattecken