在 Linux 上動態解析本機主機名稱的快速但骯髒的方法是什麼?

在 Linux 上動態解析本機主機名稱的快速但骯髒的方法是什麼?

我有一個本地運行的 Web 服務,在開發環境中,每次運行時都有一個動態 IP 位址。煩人的是,我每次都必須查找它的 IP 並重新導航到http://$IP/foo

我希望能夠導航到http://my_service/foo並擁有腳本,/home/me/find_ip.sh該腳本將列印我的服務的新 IP,並將名稱解析為每次請求時my_service的輸出。find_ip.sh

我可以在本機不設定完整的 DNS 伺服器的情況下執行此操作嗎?

有沒有快速而骯髒的黑客?

答案1

最簡單的解決方案是添加my_service/etc/hosts文件:

127.0.0.1 localhost my_service 

或者

127.0.1.1 my_service

另一種解決方案可能是新增虛擬網路介面,例如

編輯#1:

在沒有 DNS 伺服器的情況下在本地工作的一個快速而骯髒的技巧my_service是修改/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

  • 安排 cron 作業sudo crontabe -e
*/1 *  * * *   /home/me/find_ip.sh

相關內容