Linux에서 로컬 호스트 이름을 동적으로 확인하는 빠르고 더러운 방법은 무엇입니까?

Linux에서 로컬 호스트 이름을 동적으로 확인하는 빠르고 더러운 방법은 무엇입니까?

개발 환경에서 실행될 때마다 동적 IP 주소를 갖는 로컬로 실행되는 웹 서비스가 있습니다. 짜증나게도 매번 IP를 찾아보고 다시 탐색해야 합니다.http://$IP/foo

나는 내 서비스의 새로운 IP를 인쇄하고 요청될 때마다 이름이 출력으로 확인되도록 하는 http://my_service/foo스크립트를 탐색하고 가질 수 있기를 원합니다 ./home/me/find_ip.shmy_servicefind_ip.sh

로컬에서 전체 DNS 서버를 설정하지 않고도 이 작업을 수행할 수 있습니까?

빠르고 더러운 해킹이 있습니까?

답변1

가장 간단한 해결책은 파일 my_service에 추가하는 것입니다./etc/hosts

127.0.0.1 localhost my_service 

또는

127.0.1.1 my_service

또 다른 해결책은 다음과 같습니다.다음과 같은 가상 네트워크 인터페이스를 추가하십시오..

편집 #1:

my_serviceDNS 서버 없이 로컬에서 작업을 수행하는 빠르고 더러운 방법은 /etc/hosts.

  • 만들다/home/me/find_ip.sh
#!/bin/bash

FILE_OLD_IP=/tmp/ip.txt
OLD_IP='0.0.0.0'
NEW_IP=`ip route get 1 | awk '{print $NF;exit}'`

if [ -f "$FILE_OLD_IP" ]; then
        OLD_IP=`cat $FILE_OLD_IP`
fi


if [ $NEW_IP != $OLD_IP ]; then
    sed -i "s/.*my_service/$NEW_IP\tmy_service/" /etc/hosts
    echo $NEW_IP > $FILE_OLD_IP
    logger "NEW_IP: $NEW_IP"
else
    logger "CURRENT_IP: $NEW_IP"
fi
exit 0

  • 크론 작업 예약 sudo crontabe -e:
*/1 *  * * *   /home/me/find_ip.sh

관련 정보