]> j8takagi.net git repositories - ip_update.git/commitdiff
全体をモダン化
authorj8takagi <j8takagi@nifty.com>
Mon, 11 May 2026 14:20:52 +0000 (23:20 +0900)
committerj8takagi <j8takagi@nifty.com>
Mon, 11 May 2026 14:20:52 +0000 (23:20 +0900)
https://claude.ai/share/3d9386dc-dcce-4c29-8dc8-29c2f55471dc

Makefile
global_ip_chk.sh
mydns_ip_update.sh

index b0dabebbe9823aff9dda332073fb606126a4c18e..883e5538d43fac1dae1d381b69f0b70de7b68808 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,11 @@
 prefix ?= ~
 bindir ?= $(prefix)/bin
 
-INSTALL = install
+CAT := cat
+CHMOD := chmod
+INSTALL := install
+PRINTF := printf
+WHICH := which
 
 TARGETS = mydns_ip_update global_ip_chk
 
@@ -15,3 +19,6 @@ install: all
 
 distclean:
        $(RM) $(TARGETS)
+
+%: %.sh
+       $(PRINTF) "#!%s\n" `$(WHICH) sh` >$@ && $(CAT) $< >>$@ && $(CHMOD) 700 $@
index 65d0324de4427997d2f3df4292678a5d80d89c17..c9984394b7264aa89c864f0ce7562c60f0da6bac 100755 (executable)
@@ -4,31 +4,24 @@ IPDIR=~
 
 IPFILE=${IPDIR}/globalip.txt
 
-ECHO=/bin/echo
-LOGGER=/usr/bin/logger
-CAT=/bin/cat
-TEST=/usr/bin/test
-WGET=/usr/bin/wget
-
 IPCHECKSERVER=ifconfig.io
 
-NOWIP=$(${WGET} -q -O - ${IPCHECKSERVER})
+NOWIP=$(wget -q -O - https://${IPCHECKSERVER})
 
-# ガード節:NOWIPが空なら、以後の判定をせずに終了する
-if ${TEST} -z "${NOWIP}"; then
-    ${ECHO} "Failed to retrieve Global IP. Exiting." | ${LOGGER} -p local2.err
-       exit 1
+if test -z "${NOWIP}"; then
+    printf "Failed to retrieve Global IP. Exiting." >&2
+    exit 1
 fi
 
-if ${TEST} -n "${NOWIP}" -a -s ${IPFILE}; then
-    CACHEIP=$(${CAT} ${IPFILE})
+if test -n "${NOWIP}" -a -s ${IPFILE}; then
+    CACHEIP=$(cat ${IPFILE})
 else
     CACHEIP=0.0.0.0
 fi
-if ${TEST} "${NOWIP}" != "${CACHEIP}"; then
-    ${ECHO} "Global IP address changed from ${CACHEIP} to ${NOWIP}." | ${LOGGER} -p local2.info
-    ${ECHO} ${NOWIP} >${IPFILE}
+if test "${NOWIP}" != "${CACHEIP}"; then
+    printf "Global IP address changed from %s to %s\n" ${CACHEIP} ${NOWIP}
+    printf "%s\n" ${NOWIP} >${IPFILE}
     ${BINDIR}/mydns_ip_update
 else
-    ${ECHO} "Global IP address does NOT change from ${NOWIP}." | ${LOGGER} -p local2.debug
+    printf "Global IP address does NOT change from %s.\n" ${NOWIP}
 fi
index 71bd89dc160417ee23ab6445c6a2536324b34dfb..589476ff7815a18a52c1209cf9580181510cd882 100755 (executable)
@@ -1,17 +1,4 @@
-#!/bin/bash
-# MyDNSへログインする
-
-ECHO=/usr/bin/echo
-WGET=/usr/bin/wget
-W3M=/usr/bin/w3m
-SED=/usr/bin/sed
-TR=/usr/bin/tr
-LOGGER=/usr/bin/logger
-XARGS=/usr/bin/xargs
-
-. ~/.mydns
-
-for i in $(seq 0 ${#my_array[@]})
-do
-    ${WGET} -q -O - http://${MYDNSUSER[i]}:${MYDNSPWD[i]}@ipv4.mydns.jp/login.html 2>&1 | ${W3M} -dump -T text/html | ${SED} 's/^ *//g' | ${TR} '\n' ' ' | ${SED} 's/ *: */:/g' | ${XARGS} ${ECHO} "${DOMAIN[i]} on MyDNS.JP - " | ${LOGGER} -p local2.info
-done
+while read -r domain user password; do
+    result=$(curl -s "https://${user}:${password}@ipv4.mydns.jp/login.html" | grep -E 'Login and IP address notify|login_status|MASTERID|REMOTE ADDRESS|ACCESS DAYTIME' | tr '\n' ' ' | sed 's/<[^>]*>//g; s/ {2,}/ /g; s/ *: */:/g')
+    printf "%s on MyDNS.JP:: %s\n" "${domain}" "${result}"
+done < ~/.mydns