Was ist eine schnelle und einfache Möglichkeit, einen lokalen Hostnamen unter Linux dynamisch aufzulösen?

Was ist eine schnelle und einfache Möglichkeit, einen lokalen Hostnamen unter Linux dynamisch aufzulösen?

Ich habe einen Webdienst, der lokal ausgeführt wird und in der Entwicklungsumgebung bei jeder Ausführung eine dynamische IP-Adresse hat. Ärgerlicherweise muss ich jedes Mal seine IP nachschlagen und erneut navigieren zuhttp://$IP/foo

Ich möchte zu http://my_service/fooeinem Skript navigieren und es haben können, /home/me/find_ip.shdas beispielsweise die neue IP meines Dienstes druckt und den Namen bei jeder Anforderung my_servicein die Ausgabe auflöst .find_ip.sh

Kann ich dies tun, ohne lokal einen vollständigen DNS-Server einzurichten?

Gibt es einen schnellen und einfachen Hack?

Antwort1

my_serviceDie einfachste Lösung besteht darin, der Datei Folgendes hinzuzufügen /etc/hosts:

127.0.0.1 localhost my_service 

oder

127.0.1.1 my_service

Eine andere Lösung könnte sein,Fügen Sie eine virtuelle Netzwerkschnittstelle hinzu wie.

BEARBEITEN #1:

Ein schneller und einfacher Trick, um my_servicelokal ohne DNS-Server zum Laufen zu kommen, ist die Änderung /etc/hosts.

  • Erstellen/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

  • Cron-Job planen sudo crontabe -e:
*/1 *  * * *   /home/me/find_ip.sh

verwandte Informationen