How to verify an IP Address using TSQL

10-JAN-2010
SQL Server does not have a data type that is specific for storing an Internet Protocol (IP) address. An IP V4 address consists of 4 octets separated by dots. For example 192.0.0.1. Each octect can have a value from 0 through 255. This gives a theoretical space of over 4 billion IP addresses.

In the Internet space, some IP addresses are used for special purposes. Also, some ranges of IP addresses can not be used. The usable space is over 3 billion IP addresses.

This article describes different techniques to validate and handle strings that are supposed to be IP addresses in the dot-decimal notation.

Input Validation

This method is most useful if you are not handling or storing the IP address as a string, because it allows you to validate the IP address and convert it to the 4 individual octets as tinyints (or ints, or bigints).

The method was inspired by some posts on Microsoft's SQL Server Newsgroup of Itzik Ben-Gan.
The code below assumes there is a stored procedure in which the user input is validated, and that if any syntactical error is found, an error code is returned.

-- Stored/used as tinyint/int/bigint

CREATE PROCEDURE save_something
(@ip_address varchar(15)
) AS
Begin
  Declare @ip3 int
  Declare @ip2 int
  Declare @ip1 int
  Declare @ip0 int
  
  -- characters other than digits and dots
  If @ip_address LIKE '%[^.0-9]%'
    RETURN 1
  
  -- different number of dots then 3
  If LEN(@ip_address) - LEN(REPLACE(@ip_address, '.', '')) <> 3
    RETURN 1
  
  -- missing octets
  If @ip_address NOT LIKE '%_%.%_%.%_%.%_%'
    RETURN 1
  
  -- first octet between 0 and 255
  SELECT @ip3=LEFT(@ip_address, CHARINDEX('.',@ip_address) - 1)
  If @ip3 NOT BETWEEN 0 AND 255
    RETURN 2
  
  -- second octet between 0 and 255
  SELECT @ip2=SUBSTRING(@ip_address, CHARINDEX('.', @ip_address) + 1,
                 CHARINDEX('.', @ip_address, CHARINDEX('.', @ip_address) + 1)
                 - CHARINDEX('.', @ip_address) - 1)
  If @ip2 NOT BETWEEN 0 AND 255
    RETURN 2
  
  -- third octet between 0 and 255
  SELECT @ip1=SUBSTRING(@ip_address, CHARINDEX('.', @ip_address,
                 CHARINDEX('.', @ip_address) + 1) + 1, (LEN(@ip_address)
                 - CHARINDEX('.', REVERSE(@ip_address)) + 1)
                 - (CHARINDEX('.', @ip_address, CHARINDEX('.',@ip_address) + 1)) - 1)
  If @ip1 NOT BETWEEN 0 AND 255
    RETURN 2
  
  -- fourth octet between 0 and 255
  SELECT @ip0=RIGHT(@ip_address, LEN(@ip_address) - (LEN(@ip_address) - CHARINDEX('.',
                 REVERSE(@ip_address)) + 1))
  If @ip0 NOT BETWEEN 0 AND 255
    RETURN 2
  
  -- the IP address is valid. @ip3, @ip2, @ip1, @ip0 now contain the 4 octects
  -- and can be stored as tinyint or compared to tinyint.
  
  ... do your thing
End
RETURN 0

If you want to store the IP address in one column, and you want to be able to do range scans on the stored data (for example WHERE ip_address BETWEEN @a AND @b) then this will convert the 4 octects to a bigint

  Declare @ip_bigint bigint
  Set @ip_bigint=(((CAST(@ip3*256 AS bigint)+@ip2)*256)+@ip1)*256+@ip0
  
  -- example: 193.0.0.1 = 3238002689

If you want to store the IP address as efficiently as possible, and you accept that you cannot do any range scans on the stored data (but only exact matches), then this will convert the 4 octects to an int. It doesn't allow range scans because it alters the bit order in the conversion.

  Declare @ip_int int
  Set @ip_int=(@ip3&254)*256*256*128+((@ip3&1)*256*256*256*-128)+@ip2*256*256+@ip1*256+@ip0
  
  -- example: 193.0.0.1 = -536870911
An alternative would be to store the value as a binary(4), but for humans it is usually easier to work with numbers.

  Declare @ip_binary binary(4)
  Set @ip_binary=CAST(CHAR(@ip3)+CHAR(@ip2)+CHAR(@ip1)+CHAR(@ip0) as binary(4))
  
  -- example: 193.0.0.1 = 0xC1000001

The advantage of this method is, that the code is very efficient. The disadvantage is, that you have to do all this coding everywhere you are processing an IP address, which is error prone.

One way to address that, is to create a user defined function (UDF). The function below will return NULL whenever the input field is not a valid IP address, or returns the int "hash" value as demonstrated above.
CREATE FUNCTION dbo.ip_address_to_int
(@ip_address varchar(15)
) RETURNS int 
WITH SCHEMABINDING AS
Begin
  Declare @ip3 int
  Declare @ip2 int
  Declare @ip1 int
  Declare @ip0 int
  If @ip_address LIKE '%[^.0-9]%'
    RETURN NULL
  
  If LEN(@ip_address) - LEN(REPLACE(@ip_address, '.', '')) <> 3
    RETURN NULL
  
  If @ip_address NOT LIKE '%_%.%_%.%_%.%_%'
    RETURN NULL
  
  SELECT @ip3=LEFT(@ip_address, CHARINDEX('.',@ip_address) - 1)
  If @ip3 NOT BETWEEN 0 AND 255
    RETURN NULL
  
  SELECT @ip2=SUBSTRING(@ip_address, CHARINDEX('.', @ip_address) + 1,
                 CHARINDEX('.', @ip_address, CHARINDEX('.', @ip_address) + 1)
                 - CHARINDEX('.', @ip_address) - 1)
  If @ip2 NOT BETWEEN 0 AND 255
    RETURN NULL
  
  SELECT @ip1=SUBSTRING(@ip_address, CHARINDEX('.', @ip_address,
                 CHARINDEX('.', @ip_address) + 1) + 1, (LEN(@ip_address)
                 - CHARINDEX('.', REVERSE(@ip_address)) + 1)
                 - (CHARINDEX('.', @ip_address, CHARINDEX('.',@ip_address) + 1)) - 1)
  If @ip1 NOT BETWEEN 0 AND 255
    RETURN NULL
  
  SELECT @ip0=RIGHT(@ip_address, LEN(@ip_address) - (LEN(@ip_address) - CHARINDEX('.',
                 REVERSE(@ip_address)) + 1))
  If @ip0 NOT BETWEEN 0 AND 255
    RETURN NULL
  
  RETURN (@ip3&254)*256*256*128+((@ip3&1)*256*256*256*-128)+@ip2*256*256+@ip1*256+@ip0
End

Column constraint

If there is no need to convert the IP address to its 4 octects, then you don't need all this code in your stored procedures or INSERT statements. If you store the address as-is (as a string) then you can use the following CHECK constraint to disallow any invalid data.

Again the method was inspired by some posts on Microsoft's SQL Server Newsgroup of Itzik Ben-Gan.

ALTER TABLE test
ADD CONSTRAINT CK_test_ipaddress
CHECK (    ip_address LIKE     '%_.%_.%_.%_'  -- 3 periods and no empty octets 
       AND ip_address NOT LIKE '%.%.%.%.%'  -- not 4 periods or more 
       AND ip_address NOT LIKE '%[^0-9.]%'  -- no characters other than digits and periods 
       AND ip_address NOT LIKE '%[0-9][0-9][0-9][0-9]%'  -- not more than 3 digits per octet 
       AND ip_address NOT LIKE '%[3-9][0-9][0-9]%'  -- NOT 300 - 999 
       AND ip_address NOT LIKE '%2[6-9][0-9]%'  -- NOT 260 - 299 
       AND ip_address NOT LIKE '%25[6-9]%'  -- NOT 256 - 259 
      )

The advantage of this approach is, that no invalid data will ever enter the database; the advantage of declared referential integrity (DRI).

Verify using JOIN

The last method I would like to mention here, is to use a table with valid IP address patterns. Such a table allows you to validate an IP address in the following way.

  SELECT *
  FROM test
  JOIN validate_ip_address
    ON test.ip_address LIKE validate_ip_address.valid

Of course, the same logic that is used above can be implemented as a UDF. I will leave that exercise up to the reader.

The idea behind the table, is that each of the 4 octets can be validated with 5 patterns. The 2nd and 3rd pattern support any leading zeros. Since there are 4 octects to validate, you can check any IP address with 5^4 = 625 patterns.

Below is the table definition and the INSERT statements for the 625 patterns. They are sorted in such a way that the first patterns cover the largest ranges. And since its use will always involve a (partial) table scan, I decided to make it a heap (a table without clustered index) and to add no index.

CREATE TABLE validate_ip_address (valid varchar(100) NOT NULL)

INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9].[0-9]')

INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9].[0-9]')

INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9]')

INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')

INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].2[0-4][0-9].2[0-4][0-9]')

INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].[0-1][0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].2[0-4][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9].25[0-5].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-1][0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].2[0-4][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].25[0-5].[0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].[0-1][0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].2[0-4][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-9][0-9].25[0-5].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-1][0-9][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].2[0-4][0-9].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].25[0-5].[0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].2[0-4][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('[0-1][0-9][0-9].25[0-5].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].[0-1][0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].2[0-4][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('2[0-4][0-9].25[0-5].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].[0-1][0-9][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].[0-9][0-9].[0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].2[0-4][0-9].25[0-5].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-1][0-9][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-1][0-9][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].[0-1][0-9][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].2[0-4][0-9].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].2[0-4][0-9].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].2[0-4][0-9].25[0-5]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].25[0-5].[0-1][0-9][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].25[0-5].2[0-4][0-9]')
INSERT INTO validate_ip_address VALUES ('25[0-5].25[0-5].25[0-5].25[0-5]')

Now why would you want to follow this road when the rules can just as easily be coded in a function? Well, the added advantage is that the table allows you to make further restrictions that would not be quite as straightforward in a coded UDF.

For example, Wikipedia lists a lot of reserved blocks of IP Addresses. So if your IP addresses should be actual allocated internet IP addresses, then the appropriate patterns can be added.

Below are a few of reserved address blocks as listed at Wikipedia, and for each of them the changes to the validate_ip_address table in order to disallow these addresses.

-- *** 0.0.0.0/8    Current network (only valid as source address)  RFC 1700 ***

UPDATE validate_ip_address
SET valid='[1-9].'+SUBSTRING(valid,LEN('[0-9].')+1,63)
WHERE CHARINDEX('[0-9].',valid)=1
-- 125 rows

INSERT INTO validate_ip_address
SELECT '0[1-9].'+SUBSTRING(valid,LEN('[0-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('[0-9][0-9].',valid)=1

UPDATE validate_ip_address
SET valid='[1-9][0-9].'+SUBSTRING(valid,LEN('[0-9][0-9].')+1,63)
WHERE CHARINDEX('[0-9][0-9].',valid)=1
-- 2 x 125 rows

INSERT INTO validate_ip_address
SELECT '0[1-9][0-9].'+SUBSTRING(valid,LEN('[0-1][0-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('[0-1][0-9][0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '00[1-9].'+SUBSTRING(valid,LEN('[0-1][0-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('[0-1][0-9][0-9].',valid)=1

UPDATE validate_ip_address
SET valid='1[0-9][0-9].'+SUBSTRING(valid,LEN('[0-1][0-9][0-9].')+1,63)
WHERE CHARINDEX('[0-1][0-9][0-9].',valid)=1
-- 3 x 125 rows

-- *** 10.0.0.0/8   Private network   RFC 1918 ***

INSERT INTO validate_ip_address
SELECT '1[1-9].'+SUBSTRING(valid,LEN('[1-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('[1-9][0-9].',valid)=1

UPDATE validate_ip_address
SET valid='[2-9][0-9].'+SUBSTRING(valid,LEN('[1-9][0-9].')+1,63)
WHERE CHARINDEX('[1-9][0-9].',valid)=1
-- 2 x 125 rows

INSERT INTO validate_ip_address
SELECT '01[1-9].'+SUBSTRING(valid,LEN('0[1-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('0[1-9][0-9].',valid)=1

UPDATE validate_ip_address
SET valid='0[2-9][0-9].'+SUBSTRING(valid,LEN('0[1-9][0-9].')+1,63)
WHERE CHARINDEX('0[1-9][0-9].',valid)=1
-- 2 x 125 rows

-- *** 127.0.0.0/8	Loopback	RFC 3330 ***

INSERT INTO validate_ip_address
SELECT '12[0-689].'+SUBSTRING(valid,LEN('1[0-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[0-9][0-9].',valid)=1

UPDATE validate_ip_address
SET valid='1[013-9][0-9].'+SUBSTRING(valid,LEN('1[0-9][0-9].')+1,63)
WHERE CHARINDEX('1[0-9][0-9].',valid)=1
-- 2 x 125 rows

-- *** 169.254.0.0/16	Link-Local	RFC 3927 ***

INSERT INTO validate_ip_address
SELECT '16[0-8].'+SUBSTRING(valid,LEN('1[013-9][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[013-9][0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '169.[0-9].'+SUBSTRING(valid,LEN('1[013-9][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[013-9][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '169.[0-9][0-9].'+SUBSTRING(valid,LEN('1[013-9][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[013-9][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '169.[0-1][0-9][0-9].'+SUBSTRING(valid,LEN('1[013-9][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[013-9][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '169.2[0-4][0-9].'+SUBSTRING(valid,LEN('1[013-9][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[013-9][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '169.25[0-35].'+SUBSTRING(valid,LEN('1[013-9][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[013-9][0-9].[0-9].',valid)=1

UPDATE validate_ip_address
SET valid='1[01345789][0-9].'+SUBSTRING(valid,LEN('1[013-9][0-9].')+1,63)
WHERE CHARINDEX('1[013-9][0-9].',valid)=1
-- 125, 5 x 25, 125 rows

-- *** 172.16.0.0/12	Private network	RFC 1918 ***
INSERT INTO validate_ip_address
SELECT '17[0-13-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.[0-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.[04-9][0-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.0[04-9][0-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.1[0-5].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.01[0-5].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.3[2-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.03[2-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.1[0-9][0-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.2[0-4][0-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

INSERT INTO validate_ip_address
SELECT '172.25[0-5].'+SUBSTRING(valid,LEN('1[01345789][0-9].[0-9].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('1[01345789][0-9].[0-9].',valid)=1

UPDATE validate_ip_address
SET valid='1[0134589][0-9].'+SUBSTRING(valid,LEN('1[01345789][0-9].')+1,63)
WHERE CHARINDEX('1[01345789][0-9].',valid)=1
-- 125, 10 x 25, 125 rows

-- *** 255.255.255.255	Broadcast	 ***
INSERT INTO validate_ip_address
SELECT '255.'+SUBSTRING(valid,LEN('25[0-5].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('25[0-5].',valid)=1

UPDATE validate_ip_address
SET valid='25[0-4].'+SUBSTRING(valid,LEN('25[0-5].')+1,63)
WHERE CHARINDEX('25[0-5].',valid)=1

INSERT INTO validate_ip_address
SELECT '255.255.'+SUBSTRING(valid,LEN('255.25[0-5].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('255.25[0-5].',valid)=1

UPDATE validate_ip_address
SET valid='255.25[0-4].'+SUBSTRING(valid,LEN('255.25[0-5].')+1,63)
WHERE CHARINDEX('255.25[0-5].',valid)=1

INSERT INTO validate_ip_address
SELECT '255.255.255.'+SUBSTRING(valid,LEN('255.255.25[0-5].')+1,63)
FROM validate_ip_address
WHERE CHARINDEX('255.255.25[0-5].',valid)=1

UPDATE validate_ip_address
SET valid='255.255.25[0-4].'+SUBSTRING(valid,LEN('255.255.25[0-5].')+1,63)
WHERE CHARINDEX('255.255.25[0-5].',valid)=1

UPDATE validate_ip_address
SET valid='255.255.255.25[0-4]'+SUBSTRING(valid,LEN('255.255.255.25[0-5]')+1,63)
WHERE CHARINDEX('255.255.255.25[0-5]',valid)=1
-- 2 x 125, 2 x 25, 2 x 5, 1 row
The result of all this is a table with 2155 matching patterns, doing a quite thorough check...


Back to SQL Server main menu. Mail your comments to gertjans@xs4all.nl.