Допустим, у меня есть такой файл с информацией о интернет-потока в нем (файл содержит неограниченное количество строк):Как определить погоду недавно появившиеся строки в файле являются новыми (уникальными) с использованием perl?
startTime sourceIP destinationIP
2015-03-31 08:47:27.671 10.0.26.48 10.0.26.255
2015-03-31 08:47:28.108 10.50.26.180 10.90.26.255
2015-03-31 08:47:35.015 10.0.26.74 255.255.255.255
...
2015-03-31 16:18:25.365 196.0.26.13 224.0.0.252
2015-03-31 16:18:32.718 10.46.26.13 224.0.0.252
2015-03-31 16:18:46.941 188.0.26.98 177.0.26.255
2015-03-31 16:18:58.336 10.0.26.57 10.0.26.255
2015-03-31 15:53:37.451 50.0.26.13 224.0.0.252
2015-03-31 15:53:55.086 10.0.26.13 40.30.0.252
2015-03-31 15:53:55.097 128.0.26.13 224.0.0.252
...
2015-04-01 22:38:43.500 192.168.0.109 78.57.218.154
2015-04-01 22:38:43.500 213.159.38.184 192.168.0.109
2015-04-01 22:38:46.359 178.250.32.43 192.168.0.109
2015-04-01 22:38:53.269 213.159.38.184 192.168.0.109
2015-04-01 22:38:53.269 192.168.0.109 213.159.38.184
2015-04-01 22:39:14.995 54.83.28.184 192.168.0.109
То, что я хочу сделать, это определить погоды новоявленный IP-адреса не были перечислены в любом месте выше, поэтому я могу отметить их как новые и сохранить их в другом месте. Я считаю их новыми, даже если они появятся в последние несколько дней.
Что было бы лучшим программным решением с perl?
Прочитать строку. Если это «молодой» достаточно, проверьте IP-адрес на значения в хеше. Если хэш содержит IP-адрес, это означает, что он появился раньше. Если нет, это новый адрес. Но я предполагаю эту логику, если для скрипта вы будете выполнять, когда вам нужна информация. – AntonH
Является ли этот файл постоянным (похоже на syslog), и вы читаете его аналогично «tail -f»? Или вы просто разбираете его каждый раз и делаете логику? –
Согласитесь с AntonH, используйте хэш, IP как ключ, дату-время как значение. если хеш-запись является undef, ее новая. Если он был определен, сравните значение (дата-время) для разницы (1 или 2 дня). Не забудьте обновить хэш-значение только что прочитанной строки. –