Guest User

Untitled

a guest
May 21st, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ERROR_NO_NETWORK_CONTROLLER=1
  4. ERROR_NO_NETWORK_INTERFACE=2
  5.  
  6. # check for network controller
  7.  
  8. dev_installed() { lspci -v | grep -q "Network controller\|Ethernet controller"; }
  9. if ! dev_installed; then echo "No network controller detected."; exit $ERROR_NO_NETWORK_CONTROLLER; fi
  10.  
  11. # check for non virtual devices
  12.  
  13. physical_network_devices() {
  14.  
  15. # /sys/class/net contains symlinks for all available network devices
  16.  
  17. DEVICES=$(
  18. for SYMLINK in /sys/class/net/*; do
  19. readlink -e "$SYMLINK"
  20. done
  21. )
  22.  
  23. # physical device: /sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0/net/wlp1s0
  24. # virtual device: /sys/devices/virtual/net/lo
  25.  
  26. echo "$DEVICES" |
  27. grep -v virtual | #keep those not virtual
  28. sed -E 's/.*\/([^\/]+)$/\1/' # keep just the name
  29. }
  30.  
  31. PHYSICAL_NETWORK_INTERFACES=$(physical_network_devices)
  32.  
  33. if [ -z "$PHYSICAL_NETWORK_INTERFACES" ]; then echo "No physical network interface found."; exit $ERROR_NO_NETWORK_INTERFACE; fi
  34.  
  35. # check interfaces are up
  36.  
  37. for INTERFACE in $PHYSICAL_NETWORK_INTERFACES; do
  38. UP=$(ip link show up "$INTERFACE")
  39. [[ -z $UP ]] && echo "$INTERFACE is DOWN"
  40. done
Add Comment
Please, Sign In to add comment