Рубрики
Без рубрики

Регистрация уникальных IP-адресов, с которыми взаимодействует ваш Java-код

Недавно мне понадобилась какая-то утилита, которая регистрировала бы все уникальные IP-адреса всех процессов Java в ser… Помеченный как java, bash, tutorial.

Недавно мне понадобилась какая-нибудь утилита, которая регистрировала бы все уникальные IP-адреса, с которыми взаимодействовали все процессы Java на сервере.

Я немного погуглил и не нашел хорошего и простого решения для этого. Поэтому я решил немного пошалить и написал следующий сценарий.

while true
do
    netstat -nput 2>/dev/null | grep 'java' | tr -s ' ' | cut -f5 -d ' ' | cut -f1 -d ':' | uniq | while read -r ip; do grep -qxF $ip ip.log || echo $ip >> ip.log; done
    sleep 5
done

Давайте рассмотрим его шаг за шагом, чтобы объяснить, что он делает:

  • while true – это означает, что при выполнении он будет выполняться до тех пор, пока не остановится, легко
  • netstat -ввод 2>/dev/null – netstat печатает сетевые подключения

    • --n – показывать числовой адрес вместо того, чтобы пытаться разрешить имена хостов
    • -p – показать PID программы
    • -u – включить UDP-соединения
    • -t – включить TCP-соединения
  • grep 'java' – принимает только те строки, в которых есть Java (PID содержит java для приложений Java)
  • trs ' ' – заменяет каждую последовательность пробелов одним пробелом
  • cut -f5 -d ' ' – занимает пятую колонку (разделенную пробелами)
  • cut -f1 -d ':' – берет первую часть (разделенную символом:) – удаляет порт
  • uniq – делает список уникальным
  • во время чтения -r ip; выполните grep -q x F $ip ip.log echo $ip >> ip.log; готово

    • - добавляет его в файл журнала, если он его еще не содержит
      • grep -qx -q
      • - тихо, ничего не записывайте в стандартный вывод -x
      • - выберите только те совпадения, которые точно соответствуют всей строке -F

Надеюсь, это поможет вам, или если у вас есть лучшее решение, пожалуйста, дайте мне знать.

Вы можете следовать за мной по Twitter чтобы получить больше потрясающего контента, подобного этому.

Оригинал: “https://dev.to/pavel_polivka/logging-unique-ip-addresses-your-java-code-communicates-with-19ik”