This query will make sure that you're only capturing IP addresses with only 4 octets.
All octets will need to be in the specified range (currently set to 0-255 but can be changed in the where clause) you can also change the BETWEEN a AND b to IN (a, b, ...) and it will only capture those specific numbers.
It also returns the octets in their own columns as integers which would be a good way to store them moving forward in case you ever needed to do analysis on a specific range, then you won't need to parse text in the future.
Note: Because of the use of TRY_CAST this will only work on SQL Server 2012 and
WITH Octet_Position (column_1, position_1, position_2, position_3)
AS
(
SELECT
column_1,
CHARINDEX('.', column_1),
CHARINDEX('.', column_1, CHARINDEX('.', column_1) + 1),
CHARINDEX('.', column_1, (CHARINDEX('.', column_1, CHARINDEX('.', column_1) + 1)) + 1)
FROM Table_1
)
SELECT
column_1 AS ip_address,
TRY_CAST(SUBSTRING(column_1, 0, position_1) AS INT) AS octet_1,
TRY_CAST(SUBSTRING(column_1, position_1 + 1, position_2 - position_1 - 1) AS INT) AS octet_2,
TRY_CAST(SUBSTRING(column_1, position_2 + 1, position_3 - position_2 - 1) AS INT) AS octet_3,
TRY_CAST(SUBSTRING(column_1, position_3 + 1, LEN(column_1) - position_3) AS INT) AS octet_4
FROM Octet_Position
WHERE
--make sure there are three .'s
position_1 > 0 AND
position_2 > 0 AND
position_3 > 0 AND
--Make sure the octets are numbers
TRY_CAST(NULLIF(SUBSTRING(column_1, 0, position_1), '') AS INT) IS NOT NULL AND
TRY_CAST(NULLIF(SUBSTRING(column_1, position_1 + 1, position_2 - position_1 - 1), '') AS INT) IS NOT NULL AND
TRY_CAST(NULLIF(SUBSTRING(column_1, position_2 + 1, position_3 - position_2 - 1), '') AS INT) IS NOT NULL AND
TRY_CAST(NULLIF(SUBSTRING(column_1, position_3 + 1, LEN(column_1) - position_3), '') AS INT) IS NOT NULL AND
--make sure the octects are in the correct range
TRY_CAST(NULLIF(SUBSTRING(column_1, 0, position_1), '') AS INT) BETWEEN 0 AND 255 AND
TRY_CAST(NULLIF(SUBSTRING(column_1, position_1 + 1, position_2 - position_1 - 1), '') AS INT) BETWEEN 0 AND 255 AND
TRY_CAST(NULLIF(SUBSTRING(column_1, position_2 + 1, position_3 - position_2 - 1), '') AS INT) BETWEEN 0 AND 255 AND
TRY_CAST(NULLIF(SUBSTRING(column_1, position_3 + 1, LEN(column_1) - position_3), '') AS INT) BETWEEN 0 AND 255