diff options
author | Gordon GECOS <u@adam> | 2023-11-27 16:01:18 -0500 |
---|---|---|
committer | Gordon GECOS <u@adam> | 2023-11-28 07:12:26 -0500 |
commit | 847a3b4fc36485bb2d6e331d5707f233c7ffc2b5 (patch) | |
tree | cf0d4e43de93c1f55ad95ea57c05ccd6f81b3334 | |
parent | 30322c14afcc00dd3f44afc35d588466852f4584 (diff) |
new tools
-rwxr-xr-x | src/list-global-interfaces-json | 28 | ||||
-rwxr-xr-x | src/local-keyscan | 21 |
2 files changed, 49 insertions, 0 deletions
diff --git a/src/list-global-interfaces-json b/src/list-global-interfaces-json new file mode 100755 index 0000000..bc23fab --- /dev/null +++ b/src/list-global-interfaces-json | |||
@@ -0,0 +1,28 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | addr_select () | ||
4 | { | ||
5 | jq -r \ | ||
6 | ' | ||
7 | .[] | { | ||
8 | ifname, | ||
9 | addr_info: .addr_info | .[] | select(.scope == "global") | ||
10 | | { | ||
11 | local, | ||
12 | prefixlen | ||
13 | } | ||
14 | } | ||
15 | ' | ||
16 | } | ||
17 | |||
18 | ADDR_FAMILY= | ||
19 | while [ $# -gt 0 ] | ||
20 | do | ||
21 | case "$1" in | ||
22 | -4 | -6 ) ADDR_FAMILY=$1 ;; | ||
23 | * ) exit 1 ;; | ||
24 | esac | ||
25 | shift | ||
26 | done | ||
27 | |||
28 | /sbin/ip ${ADDR_FAMILY} -j addr | addr_select | ||
diff --git a/src/local-keyscan b/src/local-keyscan new file mode 100755 index 0000000..8fcb69f --- /dev/null +++ b/src/local-keyscan | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/bin/bash | ||
2 | set -e | ||
3 | set -o pipefail | ||
4 | |||
5 | extract_local_ip () | ||
6 | { | ||
7 | sed -n -E -e 's/^[0-9]+ bytes from (fe80::[a-f:0-9]+(%[^ ]*)?): .*/\1/ip' | ||
8 | } | ||
9 | |||
10 | local_ips () | ||
11 | { | ||
12 | ping -n -w1 ff02::1${INTERFACE:+%$INTERFACE} 2>/dev/null | extract_local_ip | ||
13 | } | ||
14 | |||
15 | local_known_hosts () | ||
16 | { | ||
17 | ssh-keyscan -t ed25519 -f <(local_ips) 2>/dev/null | ||
18 | } | ||
19 | |||
20 | INTERFACE=$1 | ||
21 | local_known_hosts | ||