b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | #!/bin/sh |
| 2 | # |
| 3 | # sample script for detecting local IP |
| 4 | # 2014-2015 Christian Schoenebeck <christian dot schoenebeck at gmail dot com> |
| 5 | # |
| 6 | # activated inside /etc/config/ddns by setting |
| 7 | # |
| 8 | # option ip_source 'script' |
| 9 | # option ip_script '/usr/lib/ddns/getlocalip_sample.sh -6' !!! parameters ALLOWED |
| 10 | # |
| 11 | # the script is executed (not parsed) inside get_local_ip() function |
| 12 | # of /usr/lib/ddns/dynamic_dns_functions.sh |
| 13 | # |
| 14 | # useful when this box is the only DDNS client in the network |
| 15 | # IP adresses of "internal" boxes could be detected with this script |
| 16 | # so no need to install ddns client on every "internal" box |
| 17 | # On IPv6 every internal box normally has it's own external IP |
| 18 | # |
| 19 | # This script should |
| 20 | # - return the IP address via stdout echo -n "...." !!! without line feed |
| 21 | # - report errors via stderr echo "...." >&2 |
| 22 | # - return an error code ('0' for success) exit 123 |
| 23 | |
| 24 | case $1 in |
| 25 | -4) echo -n "8.8.8.8" # never append linefeed or simular |
| 26 | exit 0 |
| 27 | ;; # IP's of Googles public DNS |
| 28 | -6) echo -n "2001:4860:4860::8888" |
| 29 | exit 0 |
| 30 | ;; |
| 31 | *) echo "$0 - Invalid or missing parameter" >&2 |
| 32 | exit 1 |
| 33 | esac |
| 34 | echo "Should never come here" >&2 |
| 35 | exit 2 |