summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGordon GECOS <u@adam>2023-11-27 16:01:18 -0500
committerGordon GECOS <u@adam>2023-11-28 07:12:26 -0500
commit847a3b4fc36485bb2d6e331d5707f233c7ffc2b5 (patch)
treecf0d4e43de93c1f55ad95ea57c05ccd6f81b3334
parent30322c14afcc00dd3f44afc35d588466852f4584 (diff)
new tools
-rwxr-xr-xsrc/list-global-interfaces-json28
-rwxr-xr-xsrc/local-keyscan21
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
3addr_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
18ADDR_FAMILY=
19while [ $# -gt 0 ]
20do
21 case "$1" in
22 -4 | -6 ) ADDR_FAMILY=$1 ;;
23 * ) exit 1 ;;
24 esac
25 shift
26done
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
2set -e
3set -o pipefail
4
5extract_local_ip ()
6{
7 sed -n -E -e 's/^[0-9]+ bytes from (fe80::[a-f:0-9]+(%[^ ]*)?): .*/\1/ip'
8}
9
10local_ips ()
11{
12 ping -n -w1 ff02::1${INTERFACE:+%$INTERFACE} 2>/dev/null | extract_local_ip
13}
14
15local_known_hosts ()
16{
17 ssh-keyscan -t ed25519 -f <(local_ips) 2>/dev/null
18}
19
20INTERFACE=$1
21local_known_hosts