^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)(:[0-9]+\r?\n)(?:^\1:[0-9]+\r?\n){1,}
\1\2
^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+):[0-9]+\n(^\1:[0-9]+\n){665,}
Зачем сравнивать хэши паролей, если вы хотите сравнить сами введенные пароли? Где логика? Хэши никогда не совпадут.
Учитывая, что есть ещё IP-оригинал - получается будет заменено 2 или больше подряд идущих строк с один и тем-же IP.