lib/ip.sh

705 B · 36 lines · bash

1#!/usr/bin/env bash
2
3brt_ip() {
4 local mode="${1:-check}"
5 shift || true
6
7 case "$mode" in
8 check|all)
9 brt_info "Local addresses:"
10 brt_local_ips | while read -r ip; do echo " $ip"; done
11 echo
12 brt_info "Public IP:"
13 local pub
14 pub=$(brt_get_public_ip)
15 if [[ -n "$pub" ]]; then
16 echo " $pub"
17 else
18 brt_warn "Could not determine public IP"
19 fi
20 ;;
21 local)
22 brt_local_ips
23 ;;
24 public)
25 brt_get_public_ip
26 ;;
27 interfaces|if)
28 ifconfig 2>/dev/null || ip addr 2>/dev/null
29 ;;
30 *)
31 brt_error "Unknown ip mode: ${mode}. Use: check, local, public, interfaces"
32 exit 1
33 ;;
34 esac
35}
36