Вы можете использовать регулярное выражение, как
^.*?(?=\b(?:\d{1,3}\.){3}\d{1,3}$)
См. Демоверсию regex и график Regulex :

Детали
^
- начало строки
.*?
- любые 0+ символов, кроме символов разрыва строки, как можно меньше
(?=\b(?:\d{1,3}\.){3}\d{1,3}$)
- положительный прогноз, который требует (непосредственно справа от текущего местоположения):
\b
- граница слова
(?:\d{1,3}\.){3}
- три повторения от 1 до 3 цифр и точка
\d{1,3}
- от одной до трех цифр
$
- конец строки.
Чтобы получить более точное регулярное выражение IP, см. Как найти или проверить IP-адрес :
^.*?(?=\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)
См. regex demo