Advertisement
technitrevor

wireless-info

Aug 7th, 2016
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.21 KB | None | 0 0
  1. #!/bin/bash
  2. #
  3. # Copyright (c) 2012
  4. #
  5. # Authors: Wild Man, Krytarik
  6. # Helpers: chili555
  7. #
  8. # This script gathers the infos necessary for troubleshooting a wireless
  9. # connection and saves them in a text file, wrapping it in an archive if it
  10. # exceeds the 19.5 kB size limit for ".txt" attachments on the Ubuntu Forums.
  11. #
  12. ##############################################################################
  13. #
  14. # This program is free software: you can redistribute it and/or modify
  15. # it under the terms of the GNU General Public License as published by
  16. # the Free Software Foundation, either version 3 of the License, or
  17. # (at your option) any later version.
  18. #
  19. # This program is distributed in the hope that it will be useful,
  20. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  21. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  22. # GNU General Public License for more details.
  23. #
  24. # You should have received a copy of the GNU General Public License
  25. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  26. #
  27.  
  28. SCRIPTDATE="2016-07-07 21:16 -0500"
  29. FILEBASE="wireless-info"
  30. OUTPUTDIR="$PWD"
  31. OUTPUTDIRFB="/tmp"
  32.  
  33. MODMATCHES="(air|ar5|at7|ath[^3]?|b43|bcma|brcm|carl|ipw|iwl|ndis|r(818|8192[eu]|871|92su)|8(188|189|192|723|812)[acde][esu]|rt[23567]|rtl|ssb|wl|(cfg|mac)80211)"
  34. LSMODMATCHES="(wmi|(dell|ideapad)[-_]laptop)"
  35. IFACEMATCHES="(wlan[0-9]|eth[0-9])"
  36. DMESGMATCHES="(firmware|[nN]etwork)"
  37. NMPROFMATCHES="\(\[connection\]\|id=\|type=\|permissions=\|autoconnect=\|\[802-11-wireless\]\|\[wifi\]\|ssid=\|bssid=\|mac-address\(-blacklist\)\?=\|mtu=\|\[802-1x\]\|[[:graph:]]*ca-certs\?=\|\[ipv[46]\]\|method=\)"
  38.  
  39. DMESGEXCL="apparmor|(cfg|mac)80211"
  40. MODINFOEXCL="alias"
  41. MODPROBEXCL="(alsa-base|blacklist-(firewire|framebuffer|modem|oss|watchdog)|fglrx|nvidia|fbdev|bumblebee)"
  42. PMUTILSEXCL="/etc/pm/(power.d/(95hdparm-apm|intel-audio-powersave|sata_alpm)|sleep.d/(10_grub-common|10_unattended-upgrades.*|novatel_3g.*))"
  43.  
  44. NETMGRNAMES=("NetworkManager" "Wicd" "ConnMan")
  45. NETMGRPATHS=("/usr/sbin/NetworkManager" "/usr/sbin/wicd" "/usr/sbin/connmand")
  46. DEC2BI=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
  47. DEC2HEX=($(printf "%02x " {0..255}))
  48.  
  49. export LANG="en_US.UTF-8"
  50. export LANGUAGE="en_US:en"
  51. export LC_ALL="en_US.UTF-8"
  52.  
  53. if [ -t 0 ]; then
  54. DIALOGAPP="terminal"
  55. DIALOGBREAK=" "
  56. TERMOUT="yes"
  57. elif [ -x /usr/bin/zenity ]; then
  58. DIALOGAPP="zenity"
  59. DIALOGBREAK="\n"
  60. elif [ -x /usr/bin/kdialog ]; then
  61. DIALOGAPP="kdialog"
  62. DIALOGBREAK="\n"
  63. else
  64. exit 1
  65. fi
  66.  
  67. if [ -t 0 ]; then
  68. SUDO="sudo"
  69. elif [ -x /usr/bin/pkexec ]; then
  70. SUDO="pkexec"
  71. elif [ -x /usr/bin/gksudo ]; then
  72. SUDO="gksudo"
  73. GKSUDO="yes"
  74. elif [ -x /usr/bin/kdesudo ]; then
  75. SUDO="kdesudo"
  76. KDESUDO="yes"
  77. KDESUDOCMT=" needs administrative privileges. Please enter your password."
  78. fi
  79.  
  80. dialog_info () {
  81. case $DIALOGAPP in
  82. terminal)
  83. printf "%b\n" "$1"
  84. ;;
  85. zenity)
  86. zenity --info --text="$1"
  87. ;;
  88. kdialog)
  89. kdialog --msgbox "$1"
  90. ;;
  91. esac
  92. }
  93.  
  94. dialog_error () {
  95. case $DIALOGAPP in
  96. terminal)
  97. printf "%b\n" "$1" >&2
  98. ;;
  99. zenity)
  100. zenity --error --text="$1"
  101. ;;
  102. kdialog)
  103. kdialog --error "$1"
  104. ;;
  105. esac
  106. }
  107.  
  108. dialog_question () {
  109. case $DIALOGAPP in
  110. terminal)
  111. local INPUT
  112. read -r -p "$1 [Y/n]: " INPUT
  113. echo "${INPUT,,}"
  114. ;;
  115. zenity)
  116. zenity --question --text="$1" || echo "no"
  117. ;;
  118. kdialog)
  119. kdialog --yesno "$1" || echo "no"
  120. ;;
  121. esac
  122. }
  123.  
  124. ip6-mac () {
  125. for MAC in "$@"; do
  126. OCT1BI=${DEC2BI[0x${MAC:0:2}]}
  127. OCT1BI7=$((${OCT1BI:6:1} - 1))
  128. OCT1BIM="${OCT1BI:0:6}${OCT1BI7#-}${OCT1BI:7}"
  129. IP6S+=${IP6S:+$'\n'}"${DEC2HEX[2#$OCT1BIM]}${MAC:3:2}:${MAC:6:2}ff:fe${MAC:9:2}:${MAC:12:2}${MAC:15:2}"
  130. done
  131. sed 's/\(^\|:\)0\+\([[:alnum:]]\)/\1\2/g;s/^\([0:]\+\)/\\(::\\|\1\\)/' <<< "$IP6S"
  132. }
  133.  
  134. exec 3>&1 4>&2
  135. exec 1> "$OUTPUTDIR/$FILEBASE.txt" || {
  136. dialog_error "${TERMOUT+\n}Cannot write output file in \"$OUTPUTDIR\",${DIALOGBREAK}trying in \"$OUTPUTDIRFB\" instead.${TERMOUT+\n}"
  137. OUTPUTDIR="$OUTPUTDIRFB"
  138. exec 1> "$OUTPUTDIR/$FILEBASE.txt" || {
  139. dialog_error "${TERMOUT+\n}Cannot write output file in \"$OUTPUTDIR\" either, aborting.${TERMOUT+\n}"
  140. exit 1
  141. }
  142. }
  143. exec 2>&1
  144.  
  145. printf "\n########## wireless info START ##########\n\n"
  146. REPORTDATE=$(date +"%d %b %Y %H:%M %Z %z")
  147. SCRIPTDATE=$(date -u -d "$SCRIPTDATE" +"%d %b %Y %H:%M %Z %z")
  148. LASTBOOTDT=$(last -FRn 1 reboot | sed -n 's/.*system boot[ ]\+\(.\+\) - .*$/\1/p')
  149. LASTBOOTDT=$(date -d "$LASTBOOTDT" +"%d %b %Y %H:%M %Z %z")
  150. printf "Report from: %s\n\n" "$REPORTDATE"
  151. printf "Booted last: %s\n\n" "$LASTBOOTDT"
  152. printf "Script from: %s\n" "$SCRIPTDATE"
  153.  
  154. printf "\n##### release ###########################\n\n"
  155. lsb_release -idrc
  156.  
  157. printf "\n##### kernel ############################\n\n"
  158. uname -srvmpio
  159. echo
  160. sed 's/root=[^ ]*//;s/[ ]\+/, /g;s/^BOOT_IMAGE=[^ ]*/Parameters:/' /proc/cmdline
  161.  
  162. printf "\n##### desktop ###########################\n\n"
  163. if [ -n "$DESKTOP_SESSION" ]; then
  164. DESKTOP="$DESKTOP_SESSION"
  165. else
  166. DESKTOP=$(sed -n 's/^Session=\(.\+\)$/\1/p' "$HOME/.dmrc")
  167. DESKDMRC=" (from ~/.dmrc)"
  168. fi
  169. if [ -n "$DESKTOP" ]; then
  170. if [ -f "/usr/share/xsessions/$DESKTOP.desktop" ]; then
  171. DESKTOP=$(sed -n 's/^Name=\(.\+\)$/\1/p' "/usr/share/xsessions/$DESKTOP.desktop")
  172. fi
  173. echo "${DESKTOP/ Session/}${DESKDMRC}"
  174. else
  175. printf "\nCould not be determined.\n"
  176. fi
  177.  
  178. printf "\n##### lspci #############################\n\n"
  179. lspci -nnk | grep -iA 2 '^[^[:space:]].*net' | sed '/^--$/d; /^[^[:space:]]/ i\\'
  180.  
  181. printf "\n##### lsusb #############################\n\n"
  182. lsusb
  183.  
  184. printf "\n##### PCMCIA card info ##################\n\n"
  185. if [ -x /sbin/pccardctl ]; then
  186. pccardctl info
  187. else
  188. echo "'pccardctl' is not installed (package \"pcmciautils\")."
  189. fi
  190.  
  191. printf "\n##### rfkill ############################\n\n"
  192. rfkill list all
  193.  
  194. printf "\n##### lsmod #############################\n\n"
  195. LSMOD=$(lsmod | egrep "(^|[[:punct:] ])($MODMATCHES|$LSMODMATCHES)[^[:punct:] ]*([[:punct:] ]|$)")
  196. echo "$LSMOD"
  197.  
  198. printf "\n##### interfaces ########################\n\n"
  199. sed '/^#/d;s/^wpa-psk [[:graph:]]\+/wpa-psk <WPA key removed>/' /etc/network/interfaces
  200.  
  201. printf "\n##### ifconfig ##########################\n\n"
  202. IFCONFIG=$(ifconfig -a)
  203. sed '/^lo /,/^$/d' <<< "$IFCONFIG"
  204. IFACESETH=($(sed -n 's/^\([^ ]\+\)[ ]\+Link encap:Ethernet.*/\1/p' <<< "$IFCONFIG"))
  205. if (( ${#IFACESETH[@]} > 0 )); then
  206. IFETHMATCHES=${IFACESETH[@]}
  207. IFACEMATCHES="($IFACEMATCHES|(${IFETHMATCHES// /|}))"
  208. fi
  209.  
  210. printf "\n##### iwconfig ##########################\n\n"
  211. iwconfig
  212.  
  213. printf "\n##### route #############################\n\n"
  214. route -n
  215.  
  216. printf "\n##### resolv.conf #######################\n\n"
  217. grep -v '^#' /etc/resolv.conf
  218.  
  219. printf "\n##### network managers ##################\n\n"
  220. printf "Installed:\n\n"
  221. for NETMGRNR in "${!NETMGRPATHS[@]}"; do
  222. if [ -f "${NETMGRPATHS[$NETMGRNR]}" ]; then
  223. NETMGRINST+=("${NETMGRNAMES[$NETMGRNR]}")
  224. fi
  225. done
  226. printf "\t%s\n" "${NETMGRINST[@]:-None found.}"
  227. NETMGRMATCHES=${NETMGRPATHS[@]/#*\//|}
  228. NETMGRMATCHES=${NETMGRMATCHES// |/|}
  229. NETMGRMATCHES="(${NETMGRMATCHES#|})"
  230. printf "\nRunning:\n\n"
  231. ps -ef | egrep "( |/)$NETMGRMATCHES($| )" || printf "\tNone found.\n"
  232.  
  233. printf "\n##### NetworkManager info ###############\n\n"
  234. if [ -x /usr/bin/nm-tool ]; then
  235. nm-tool
  236. elif [ -x /usr/bin/nmcli ]; then
  237. nmcli -f all device show | sed '/^GENERAL.DEVICE:[ ]\+lo$/,/^$/d; /^AP\[[0-9]\+\]\./d'
  238. echo
  239. nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY,ACTIVE,IN-USE device wifi list
  240. else
  241. echo "NetworkManager is not installed (package \"network-manager\")."
  242. fi
  243.  
  244. printf "\n##### NetworkManager.state ##############\n\n"
  245. cat -s /var/lib/NetworkManager/NetworkManager.state
  246.  
  247. printf "\n##### NetworkManager.conf ###############\n\n"
  248. grep -v '^#' /etc/NetworkManager/NetworkManager.conf
  249. if [ -f /etc/NetworkManager/nm-system-settings.conf ]; then
  250. printf "\nnm-system-settings.conf (used up to Ubuntu 10.04):\n\n"
  251. grep -v '^#' /etc/NetworkManager/nm-system-settings.conf
  252. fi
  253.  
  254. printf "\n##### NetworkManager profiles ###########\n\n"
  255. if [ -d /etc/NetworkManager/system-connections ]; then
  256. if [ -n "$SUDO" ]; then
  257. trap "" 2 3
  258. NMPROFILES=$(find /etc/NetworkManager/system-connections -maxdepth 1 -type f -exec $SUDO${GKSUDO+ -D grep --}${KDESUDO+ -d --comment "<b>grep</b>$KDESUDOCMT" --} grep -vH '^$' {} +) && SUDOSUCCESS="yes" || SUDOSUCCESS="no"
  259. trap 2 3
  260. if [ "$SUDOSUCCESS" = "yes" ]; then
  261. ORIGIFS="$IFS"
  262. IFS=$'\n'
  263. for NMWLPRFFILE in $(sed -n 's/^\(.\+\):type=\(802-11-wireless\|wifi\).*$/\1/p' <<< "$NMPROFILES"); do
  264. NMWLPRFFLPERMS=$(stat -c "%a %U" "$NMWLPRFFILE")
  265. NMWLPROFILE=($(sed -n "s;^$NMWLPRFFILE:\($NMPROFMATCHES.*\)$;\1 |;p" <<< "$NMPROFILES"))
  266. NMWLPROFSOUT+="[[$NMWLPRFFILE]] ($NMWLPRFFLPERMS)"$'\n'"${NMWLPROFILE[@]}"$'\n\n'
  267. done
  268. IFS="$ORIGIFS"
  269. sed 's# | \[#\n\[#g;s#\] |#\]#g;s/ |$//' <<< "$NMWLPROFSOUT" | sed '/^\[[^]]*\]$/d'
  270. else
  271. printf "\nAcquisition of admin privileges failed.\n"
  272. fi
  273. else
  274. echo "No way to acquire admin privileges found."
  275. fi
  276. else
  277. echo "No NetworkManager profiles found."
  278. fi
  279.  
  280. printf "\n##### iw reg get ########################\n\n"
  281. if [ -x /sbin/iw ]; then
  282. if IWREGGET=$(iw reg get 2>&1) && [ -f /etc/timezone ]; then
  283. REGION=$(cat /etc/timezone)
  284. printf "Region: %s (based on set time zone)\n\n" "$REGION"
  285. fi
  286. echo "$IWREGGET"
  287. else
  288. echo "'iw' is not installed (package \"iw\")."
  289. fi
  290.  
  291. printf "\n##### iwlist channels ###################\n\n"
  292. if [ -x /sbin/iwlist ]; then
  293. iwlist chan
  294. else
  295. echo "'iwlist' is not installed (package \"wireless-tools\")."
  296. fi
  297.  
  298. printf "\n##### iwlist scan #######################\n\n"
  299. if [ -x /sbin/iwlist ]; then
  300. if [ -n "$SUDO" ]; then
  301. trap "" 2 3
  302. IWLISTSCAN=$($SUDO${KDESUDO+ -d} iwlist scan) && SUDOSUCCESS="yes" || SUDOSUCCESS="no"
  303. trap 2 3
  304. if [ "$SUDOSUCCESS" = "yes" ]; then
  305. if [[ $IWLISTSCAN = *Frequency:* ]]; then
  306. printf "Channel occupancy:\n\n"
  307. grep '^[ ]*Frequency:' <<< "$IWLISTSCAN" | sort | uniq -c | sed 's/^[ ]\+\([ ][0-9]\+\)[ ]\+/ \1 APs on /'
  308. echo
  309. fi
  310. grep -v '^[ ]*IE: Unknown:' <<< "$IWLISTSCAN"
  311. else
  312. printf "\nAcquisition of admin privileges failed.\n"
  313. fi
  314. else
  315. echo "No way to acquire admin privileges found."
  316. fi
  317. else
  318. echo "'iwlist' is not installed (package \"wireless-tools\")."
  319. fi
  320.  
  321. printf "\n##### module infos ######################\n\n"
  322. MODULES=$(egrep -o "^$MODMATCHES[^ ]*" <<< "$LSMOD")
  323. for MODULE in $MODULES; do
  324. MODINFO=$(modinfo $MODULE | egrep -v "^$MODINFOEXCL:")
  325. printf "[%s]\n%s\n\n" "$MODULE" "$MODINFO"
  326. done
  327.  
  328. printf "\n##### module parameters #################\n\n"
  329. for MODULE in $MODULES; do
  330. if [ -d /sys/module/$MODULE/parameters ]; then
  331. MODPARAMS=$(grep -H '^[[:graph:]]' /sys/module/$MODULE/parameters/* | sed 's#^.*/##;s/:/: /')
  332. printf "[%s]\n%s\n\n" "$MODULE" "$MODPARAMS"
  333. fi
  334. done
  335.  
  336. printf "\n##### /etc/modules ######################\n\n"
  337. grep -v '^#' /etc/modules
  338.  
  339. printf "\n##### modprobe options ##################\n\n"
  340. for MODPROBEFILE in $(find /etc/modprobe.{conf,d} -name "*.conf" -regextype posix-egrep -not -regex ".*$MODPROBEXCL.*" 2> /dev/null | sort); do
  341. MODPROBEOPTS=$(egrep -v '^(#|$)' $MODPROBEFILE)
  342. if [ -n "$MODPROBEOPTS" ]; then
  343. printf "[%s]\n%s\n\n" "$MODPROBEFILE" "$MODPROBEOPTS"
  344. fi
  345. done
  346.  
  347. printf "\n##### rc.local ##########################\n\n"
  348. grep -v '^#' /etc/rc.local
  349.  
  350. printf "\n##### pm-utils ##########################\n\n"
  351. for PMUTILSFILE in $(find /etc/pm/*.d \( -type f -o -type l \) -regextype posix-egrep -not -regex "$PMUTILSEXCL" | sort); do
  352. PMUTFLCONT=$(egrep -v '^(#|$)' $PMUTILSFILE)
  353. if [ -n "$PMUTFLCONT" ]; then
  354. PMUTFLPERMS=$(stat -c "%a %U" $PMUTILSFILE)
  355. printf "[%s] (%s)\n%s\n\n" "$PMUTILSFILE" "$PMUTFLPERMS" "$PMUTFLCONT"
  356. fi
  357. done
  358.  
  359. printf "\n##### udev rules ########################\n\n"
  360. for UDEVRLFILE in $(find /etc/udev/rules.d -name "*net*.rules" | sort); do
  361. UDEVRULES=$(grep -B1 '^[^#]' $UDEVRLFILE | egrep -v '^(--)?$')
  362. if [ -n "$UDEVRULES" ]; then
  363. printf "[%s]\n%s\n\n" "$UDEVRLFILE" "$UDEVRULES"
  364. fi
  365. done
  366.  
  367. printf "\n##### dmesg #############################\n\n"
  368. dmesg | tail -n 100 | egrep "[[:punct:] ]($MODMATCHES|$IFACEMATCHES|$DMESGMATCHES)[^[:punct:] ]*[[:punct:] ]" | egrep -v "$DMESGEXCL" | uniq -cf 2 | sed 's/^[ ]\+1[ ]\+//;s/^[ ]\+\([0-9]\+\)[ ]\+\(.\+\)$/\2 (repeated \1 times)/'
  369.  
  370. printf "\n########## wireless info END ############\n\n"
  371.  
  372. exec 2>&4 4>&-
  373. exec 1>&3 3>&-
  374.  
  375. ##### MAC address masking #####
  376.  
  377. RESULTS=$(cat -s "$OUTPUTDIR/$FILEBASE.txt")$'\n'
  378.  
  379. ORIGIFS="$IFS"
  380. IFS=$'\n'
  381.  
  382. IFACESIDS=($(sed -n "s/^\([^ ]\+\)[ ]\+.*HWaddr.*/'\1'/p" <<< "$IFCONFIG"))
  383. IFACESMACS=($(sed -n 's/^[^ ]\+[ ]\+.*HWaddr \([^ ]\+\)[ ]*/\1/p' <<< "$IFCONFIG"))
  384. IFACESIP6S=($(ip6-mac "${IFACESMACS[@]}"))
  385.  
  386. WLAPSIWLIDS=($(sed -n "/^[ ]*Cell [0-9]\+/,/^[ ]*ESSID:/ {/^[ ]*Cell [0-9]\+/h; /^[ ]*ESSID:/ {H;g;s/^[ ]*Cell 0\?\([0-9]\+\).*ESSID:\"\(.*\)\"$/'\2' [AC\1]/p}}" <<< "$IWLISTSCAN"))
  387. WLAPSIWLMACS=($(sed -n 's/^[ ]*Cell [0-9]\+.*Address: \([^ ]\+\)/\1/p' <<< "$IWLISTSCAN"))
  388. WLAPSIWLIP6S=($(ip6-mac "${WLAPSIWLMACS[@]}"))
  389.  
  390. WLAPSNMRAW=$(sed -n '/^##### NetworkManager info #####/,/^##### / {/^[ ]*Wireless Access Points/,/^$/ {/Wireless Access Points/d;s/^[ ]\+\*\?//;s/:[ ]\+/\t/;p}; /^SSID[ ]\+BSSID[ ]\+/,/^$/ {/^SSID[ ]\{2,\}BSSID[ ]\{2,\}/d;s/[ ]\{2,\}/\t/;p}}' <<< "$RESULTS")
  391. WLAPSNMIDS=($(awk -F '\t' '{print "'\''" $1 "'\''"}' <<< "$WLAPSNMRAW"))
  392. WLAPSNMMACS=($(grep -o '\([[:alnum:]]\{2\}:\)\{5\}[[:alnum:]]\{2\}' <<< "$WLAPSNMRAW"))
  393. WLAPSNMIP6S=($(ip6-mac "${WLAPSNMMACS[@]}"))
  394.  
  395. IFS="$ORIGIFS"
  396.  
  397. for IFACENR in "${!IFACESMACS[@]}"; do
  398. MACMASKSED+="s;${IFACESMACS[$IFACENR]};<MAC ${IFACESIDS[$IFACENR]} [IF$(($IFACENR + 1))]>;I;"
  399. MACMASKSED+=" /${IFACESIP6S[$IFACENR]}/ s;${IFACESIP6S[$IFACENR]/#\\(::/\(};<IP6 ${IFACESIDS[$IFACENR]} [IF$(($IFACENR + 1))]>;I;"
  400. IFACEMACC=${IFACESMACS[$IFACENR]//:/}
  401. if [[ ${IFACESIDS[$IFACENR],,} =~ ${IFACEMACC,,} ]]; then
  402. MACMASKSED+="s;\(${IFACESIDS[$IFACENR]:1:3}\)$IFACEMACC;\1<IF from MAC [IF$(($IFACENR + 1))]>;Ig;"
  403. fi
  404. done
  405.  
  406. for WLAPIWLNR in "${!WLAPSIWLMACS[@]}"; do
  407. MACMASKSED+="s;${WLAPSIWLMACS[$WLAPIWLNR]};<MAC ${WLAPSIWLIDS[$WLAPIWLNR]}>;I;"
  408. MACMASKSED+=" /${WLAPSIWLIP6S[$WLAPIWLNR]}/ s;${WLAPSIWLIP6S[$WLAPIWLNR]/#\\(::/\(};<IP6 ${WLAPSIWLIDS[$WLAPIWLNR]}>;I;"
  409. done
  410.  
  411. for WLAPNMNR in "${!WLAPSNMMACS[@]}"; do
  412. MACMASKSED+="s;${WLAPSNMMACS[$WLAPNMNR]};<MAC ${WLAPSNMIDS[$WLAPNMNR]} [AN$(($WLAPNMNR + 1))]>;I;"
  413. MACMASKSED+=" /${WLAPSNMIP6S[$WLAPNMNR]}/ s;${WLAPSNMIP6S[$WLAPNMNR]/#\\(::/\(};<IP6 ${WLAPSNMIDS[$WLAPNMNR]} [AN$(($WLAPNMNR + 1))]>;I;"
  414. done
  415.  
  416. sed "$MACMASKSED /\([[:alnum:]]\{2\}:\)\{6,\}/! s/\([[:alnum:]]\{2\}:\)\{5\}[[:alnum:]]\{2\}/<MAC address>/" <<< "$RESULTS" > "$OUTPUTDIR/$FILEBASE.txt"
  417.  
  418. ##### The End #####
  419.  
  420. dialog_info "${TERMOUT+\n}Results saved in \"$OUTPUTDIR/$FILEBASE.txt\".${TERMOUT+\n}"
  421.  
  422. if (( $(stat -c %s "$OUTPUTDIR/$FILEBASE.txt") > 19968 )); then
  423. tar -czf "$OUTPUTDIR/$FILEBASE.tar.gz" -C "$OUTPUTDIR" "$FILEBASE.txt" && \
  424. dialog_info "Results also archived in \"$OUTPUTDIR/$FILEBASE.tar.gz\",${DIALOGBREAK}as they exceed the 19.5 kB size limit for \".txt\" attachments${DIALOGBREAK}on the Ubuntu Forums.${TERMOUT+\n}" || \
  425. dialog_error "Results exceed the 19.5 kB size limit for \".txt\" attachments${DIALOGBREAK}on the Ubuntu Forums, but archive could not be created.${TERMOUT+\n}"
  426. fi
  427.  
  428. if [ -x /usr/bin/pastebinit ] && ping -nc 3 -w 6 -i 0.2 paste.ubuntu.com > /dev/null 2>&1; then
  429. PASTEBIN=$(dialog_question "Do you also want to post them${DIALOGBREAK}to your default 'pastebinit' provider?")
  430. if [[ ! $PASTEBIN =~ ^no?$ ]]; then
  431. PASTERESULT=$(pastebinit -i "$OUTPUTDIR/$FILEBASE.txt" -f text 2>&1) && PASTESUCCESS="yes"
  432. if [ "$PASTESUCCESS" = "yes" ]; then
  433. dialog_info "${TERMOUT+\n}Pastebin successful:\n\n${PASTERESULT}${TERMOUT+\n}"
  434. else
  435. if [ -n "$PASTERESULT" ]; then
  436. dialog_error "${TERMOUT+\n}Pastebin failed, error message is:\n\n${PASTERESULT}${TERMOUT+\n}"
  437. else
  438. dialog_error "${TERMOUT+\n}Pastebin failed, no error message given.${TERMOUT+\n}"
  439. fi
  440. fi
  441. else
  442. echo
  443. fi
  444. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement