Если «узел входит в систему», я предполагаю, что он подключается к некоторому порту.И это именно то, откуда вы получаете IP.например, в Java:
Socket socket = serverSocket.accept();
InetAddress addr = socket.getInetAddress()
System.out.println("new host with IP " + addr.getHostAddress() + " entered the system");
Кроме того, вы можете разрешить полное доменное имя вашей системы.
# bash
nslookup `hostname --fqdn`
# groovy
groovy -e 'println java.net.InetAddress.getLocalHost().getHostAddress()'
Хотя полное доменное имя зависит от конфигурации вашего хоста и может преобразоваться в 127.0.0.1, который нене очень полезно
В качестве третьего варианта, характерного для EC2, вы также можете использовать AWS SDK или EC2 CLI:
# using CLI
ec2-describe-instances | grep INSTANCE | cut -f4
Возвращает список общедоступных имен DNS, которые разрешаются в частные IP при разрешении.из EC2 (попробуйте передать вывод в xargs -n1 nslookup
на экземпляре EC2 или вне EC2 соответственно).Конечно, вы можете отфильтровать список, чтобы показать только экземпляры, запущенные из специальных AMI, которые вас интересуют.