From 9e7a30d9f63997ada3fee97d5b32729f11573933 Mon Sep 17 00:00:00 2001 From: j8takagi Date: Mon, 11 May 2026 23:20:52 +0900 Subject: [PATCH] =?utf8?q?=E5=85=A8=E4=BD=93=E3=82=92=E3=83=A2=E3=83=80?= =?utf8?q?=E3=83=B3=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://claude.ai/share/3d9386dc-dcce-4c29-8dc8-29c2f55471dc --- Makefile | 9 ++++++++- global_ip_chk.sh | 27 ++++++++++----------------- mydns_ip_update.sh | 21 ++++----------------- 3 files changed, 22 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index b0dabeb..883e553 100644 --- 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 $@ diff --git a/global_ip_chk.sh b/global_ip_chk.sh index 65d0324..c998439 100755 --- a/global_ip_chk.sh +++ b/global_ip_chk.sh @@ -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 diff --git a/mydns_ip_update.sh b/mydns_ip_update.sh index 71bd89d..589476f 100755 --- a/mydns_ip_update.sh +++ b/mydns_ip_update.sh @@ -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 -- 2.47.3