voxdemonix : révision n°35 (25 septembre 2019 13:15:52)
![screenshot demo conky](https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_en:screenshot-2019_08_24-healthcheck_services_via_conky.png)
Liste
=====
Health check d'un service web ou de l'IOT (camera, etc)
-----------
```
camera : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s http://192.168.42.42 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Remplacez http://192.168.42.42 par l'adresse de la WEBUI de votre caméra. Certaines caméra utilisent https à la place d'http (il n'y a pas vraiment de différence ici mais il faut l'indiquer dans l'URL)
Health check d'un service web à travers Tor
-----------
Pratique pour vérifier la présence en ligne depuis internet de votre serveur web sur votre réseau LAN ou depuis un autre pays. Vous devez avoir installé tor (_apt install tor_)
```
WebServer via tor : ${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s http://7j3ncmar4jm2r3e7.onion >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Health check d'un serveur VPN ou d'une machine connectée à votre sous réseau
-----------
```
VPN :${alignr}${execp ping -c 1 -W 5 10.8.42.42 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Remplacez _10.8.42.42_ par l'adresse de votre VPN à l'intérieur du sous réseau VPN.
Health check d'un serveur SSH
-----------
```
SSH_Server1 :${alignr}${execp ssh fake_user@192.168.42.42 -o "BatchMode=yes" 2>&1 | grep -Eo "Permission denied" >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Health check d'un serveur DNS
-----------
```
DNS_Server1 :${alignr}${execp host -W 5 -t A gstatic.com 80.67.169.40 >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Remplacez _80.67.169.40_ par l'adresse de votre serveur DNS.
Pour le health check le script demande l'adresse liée à un nom de domaine (ici _gstatic.com_), peu importe lequel. Choisir le nom de domaine le plus régulièrement utilisé sur votre réseau permet d'économiser un peu de pollution ;)
Health check d'un serveur MariaDB/MySQL
-----------
### Installation des pré-requis
Sur votre ordinateur de bureau, vous devez avoir installé mysql-client.
```
apt install mysql-client
```
Sur votre serveur de base de données, vous devez créer un utilisateur avec le moins de permissions possible. Ici nous créons l'utilisateur "_healthcheck_" et n'autorisons les _clients mysql_ à n'avoir comme adresse IP que celles comprises entre _10.8.42.0_ et _10.8.42.255_.
#### Sans mot de passe.
```
mysql -u root -p -e "CREATE USER 'healthcheck'@'10.8.42.%'; FLUSH PRIVILEGES;"
```
#### Avec mot de passe.
```
mysql -u root -p -e "CREATE USER 'healthcheck'@'10.8.42.%' identified by 'monPass'; FLUSH PRIVILEGES;"
```
### Le code pour conky
```
MariaDB : ${alignr}${execp mysql -B --connect-timeout=5 -u healthcheck -h 10.8.42.42 -P 3306 -e "quit" >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Remplacez _10.8.42.42_ par l'adresse de votre serveur MySQL/MariaDB. Si vous utilisez un autre [port](https://fr.wikipedia.org/wiki/Port_logiciel) que celui par défaut (3306), remplacez la valeur indiquée dans la commande.
En utilisation avec mot de passe, éditez puis ajoutez le paramètre suivant juste après "mysql" dans la commande.
```
--password=YourPassword
```
Health check d'un serveur NTP
-----------
```
NTP_Server1 :${alignr}${execp ntpdate -t 5 -q 0.pool.ntp.org >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
```
Remplacez _0.pool.ntp.org_ par l'adresse de votre serveur NTP.
Lister l'ensemble des machines connectées au sous-réseau
-----------
Vous devez avoir installé [nmap](https://fr.wikipedia.org/wiki/Nmap) sur votre machine (_apt install nmap_). sudo n'est pas requis pour les scans aux ping avec nmap. Les ping scan peuvent provoquer des alertes de sécurités sur les machines du réseaux ayant certains antivirus.
```
${color yellow}Network List${color}
${execp timeout --kill-after=10 10 nmap -n -sn 192.168.42.1-254 | grep -Eo "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | sed 's/^/${alignc}/' | grep ^ || echo '${alignc}${color rose}network down${color}' }
```
Remplacez _192.168.42.42_ par la première adresse de votre sous réseau. Fonctionne aussi sur les réseaux VPN et en IPv6.
Afficher l'adresse IP et l'adresse MAC de toutes leschaque machines connectées au sous réseau
-----------
Cette méthode ping scan une plage d'adresse IP et affiche le résultat avec la correspondance des adresses [MAC](https://fr.wikipedia.org/wiki/Adresse_MAC) si cette dernière est trouvée dans le cache ARP. Si un [MITM](https://fr.wikipedia.org/wiki/MITM) est détecté, le problème est mis en surbrillance en rouge.
Vous devez avoir installé [nmap](https://fr.wikipedia.org/wiki/Nmap) sur votre machine (_apt install nmap_). sudo n'est pas requis pour les scans aux ping avec nmap. Les ping scan peuvent provoquer des alertes de sécurités sur les machines du réseaux ayant certains antivirus.
1. **Ajoutez ce code à votre conky.**
```
${alignr}${color yellow}Network List${color}
${execp ~/.conky/conky-perso/conky_checkservices/list_network.bash 192.168.42.2-254 | sed 's/COLOR_ARP_ATTACK/red/; s/COLOR_ARP_NORM/#FAF0C5/ }
```
Remplacez _192.168.42.42_ par la première adresse de votre sous réseau. Ou vous pouvez remplacer la plage d'adresse par "al" et laisser ainsi le script détecter et scanner automatiquement tout les réseaux auxquels vous êtes connectés.
1. **Ajoutez ce script dans _~/.conky/conky-perso/conky_checkservices/list_network.bash_**
```
#!/bin/bash
# <~ AutoScan network for conky ~>
# <~~~~ Infernalis Creatorem ~~~~>
# infos : https://wiki.0rion.netlib.re/doku.php?id=documentation_en:debian_ubuntu_health_check_service_via_conky#display_ip_and_mac_address_of_all_connected_hosts_on_the_subnet
#set -x # uncomment this line for debug
function scan_network {
mapfile -t ip_list < <( timeout --kill-after=15 15 nmap -n -sn $1 | grep -Eo '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))|([a-Z0-9]{2}[:]{0,1}){6}' | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 ) ;
mac_list=$( arp -a | grep -v 'incomplete' | grep -Eo '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))|[a-Z0-9]{2}[:]{1}([a-Z0-9]{2}[:]{0,1}){5}') ;
mapfile -t arp_address < <(echo $mac_list | grep -Eo '[a-Z0-9]{2}[:]{1}([a-Z0-9]{2}[:]{0,1}){5}')
declare -A MAC_TMP_LIST
for check_mac in "${arp_address[@]}"; do
((MAC_TMP_LIST[$check_mac]+=1))
done
for value in "${!MAC_TMP_LIST[@]}"; do
# echo $value --- ${MAC_TMP_LIST[$value]};
if [[ ${MAC_TMP_LIST[$value]} -gt 1 ]]; then
mac_list=$(echo $mac_list | sed "s|\<$value\>|\$\{color=COLOR_ARP_ATTACK\}&|g; s|\<$value\>|&\$color|g")
else
mac_list=$(echo $mac_list | sed "s|\<$value\>|\$\{color=COLOR_ARP_NORM\}&|g; s|\<$value\>|&\$color|g")
fi
done
for ip in "${ip_list[@]}"; do if $( echo $mac_list | grep -q $ip); then echo $(echo $mac_list | sed ':a;N;$!ba;s/\n/ /g' | awk '{ORS=NR%2==0?"\n":RS}1' RS=" " | grep "$ip " | uniq -u | sed 's|=| |;'); else echo "${ip}"; fi done | sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/${color cyan}&/; s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/&$color${alignr}/;' | grep ^ || echo '${alignc}${color rose}network down${color}'
}
if [[ $1 == "all" ]];
then
var=$(ip address show | grep -Eo "192.168.[0-9].|10.8.[0-9]." | uniq); for address in $var; do scan_network ${address}1-254; done
else
scan_network $1
fi
```
1. **Rendez le script exécutable.**
```
sudo chmod +x ~/.conky/conky-perso/conky_checkservices/list_network.bash
```
1. **Le script n'a pas besoin d'être édité, vous pouvez supprimer la permission de le modifier.**
```
sudo chmod -w ~/.conky/conky-perso/conky_checkservices/list_network.bash
```
![screenshot healthcheck services via conky display mac & ip](https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_en:screenshot-2019_09_24-healthcheck_services_via_conky_-display_mac_ip.png)
Afficher la signature du certificat TLS (https)
-----------
N'indiquer pas https, n'indiquez que l'[hostname](https://fr.wikipedia.org/wiki/Hostname). Ce code n'affiche rien s'il n'y a pas de réseau.
### Affichage en une seule ligne
Pour les conkys de taille large.
```
${execp openssl s_client -connect linuxfr.org:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin }
```
![screenshot demo afficher signature tls sur 1 seule ligne](https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_en:screenshot-2019_08_25-healthcheck_services_via_conky-display_tls-1_line.png)
### Affichage en 3 lignes
Bien plus pratique pour les conkys de taille normale.
```
${alignc}${font :size=7}${execp openssl s_client -connect linuxfr.org:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin | sed 's/print=/&\n${alignc}/g; s/=//; s/\([a-Z0-9]\{2\}:\)\{10\}/&\n${alignc}/g' }${font}
```
![screenshot demo afficher signature tls sur 3 lignes](https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_en:screenshot-2019_08_25-healthcheck_services_via_conky-display_tls-3_lines.png)
Checker le certificat TLS (https)
-----------
Ce conky compare deux certificats TLS, affiche le premier en vert s'ils sont strictement identique, affiche le second en rouge s'ils sont différent. Une bonne utilisation de ce conky est d'indiquer comme premier hostname un canal sécurisé vers votre serveur (SSH, VPN, etc), et en second de checker via le WAN ou via tor (par défaut).
### Affichage en une seule ligne
```
${font :size=7}${execp certSecure=$( timeout --kill-after=5 5 2>/dev/null openssl s_client -connect 88.191.250.176:443 -servername linuxfr.org < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout 2>/dev/null ); certTor=$( timeout --kill-after=5 5 2>/dev/null torsocks openssl s_client -connect linuxfr.org:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout 2>/dev/null ); echo -n '${color green}' "$certSecure"; echo '${color}'; c=$(echo -n '${color red}' "$certTor" '${color}' ); echo -n $c | sed "/$certSecure/d"; }${font}
```
- _**88.191.250.176:443**_ ⇒ l'adresse IP du serveur (conseillé une adresse VPN ou SSH)
- **_linuxfr.org_** ⇒ Remplacez par l'hostname pour joindre votre VHOST.
![screenshot demo conky check tls 1 ligne](https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_en:screenshot-2019_08_27-healthcheck_services_via_conky-check_tls-1_line.gif)
### Affichage en 3 lignes
```
${alignc}${font :size=7}${execp certSecure=$( timeout --kill-after=5 5 2>/dev/null openssl s_client -connect 88.191.250.176:443 -servername linuxfr.org < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout 2>/dev/null ); certTor=$( timeout --kill-after=5 5 2>/dev/null torsocks openssl s_client -connect linuxfr.org:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout 2>/dev/null ); echo -n '${color green}' "$certSecure" | sed 's/print=/&\n${alignc}/g; s/=//; s/\([a-Z0-9]\{2\}:\)\{10\}/&\n${alignc}/g'; echo '${color}'; c=$(echo -n '${alignc}${color red}' "$certTor" '${color}' ); echo -n $c | sed "/$certSecure/d" | sed 's/print=/&\n${alignc}/g; s/=//; s/\([a-Z0-9]\{2\}:\)\{10\}/&\n${alignc}/g'; }${font}
```
- _**88.191.250.176:443**_ ⇒ l'adresse IP du serveur (conseillé une adresse VPN ou SSH)
- **_linuxfr.org_** ⇒ Remplacez par l'hostname pour joindre votre VHOST.
![screenshot demo conky check tls 3 lignes](https://wiki.0rion.netlib.re/lib/exe/fetch.php?media=documentation_en:screenshot-2019_08_27-healthcheck_services_via_conky-check_tls-3_lines.gif)
Exemples
===========
L'exemple suivant est celui qui a permis de faire le screenshot en début d'article.
```
# INFOS : https://wiki.0rion.netlib.re/doku.php?id=documentation_en:debian_ubuntu_health_check_service_via_conky
# http://conky.sourceforge.net/config_settings.html
# Use Xft?
use_xft yes
xftfont Ubuntu Beta:size=8
xftalpha 0.8
text_buffer_size 2048
# Update interval in seconds
update_interval 60
# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_transparent no
own_window_argb_visual yes
own_window_argb_value 210 # semi-transparent
own_window_type normal
own_window_class conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
background no
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
# Minimum size of text area
minimum_size 200 40
maximum_width 200
maximum_height 500
# Draw shades?
draw_shades no
# Draw outlines?
draw_outline no
# Draw borders around text
draw_borders no
# Stippled borders?
stippled_borders 0
# border margins
border_inner_margin 2
# border width
border_width 1
# Default colors and also border colors
default_color beige
default_shade_color black
default_outline_color white
own_window_colour black
# Text alignment, other possible values are commented
#alignment top_left
alignment tm
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x -25
gap_y 330
# Subtract file system buffers from usedmemory?
no_buffers yes
# set to yes if you want all text to be in uppercase
uppercase no
# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer none
TEXT
${font :style=Bold}${color yellow} ${alignc}~ Check Services ~ $color${font}
#${color yellow}CAMERAS${color}
caméra 1 :${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
caméra 2 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
caméra 3 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
caméra 4 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
caméra 5 : ${alignr}${execp curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s captive.apple.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
${color yellow}INFRASTRUCTURE${color}
NTP_1 :${alignr}${execp ntpdate -t 5 -q 0.pool.ntp.org >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
NTP_2 :${alignr}${execp ntpdate -t 5 -q 192.168.42.43 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
VPN_1 :${alignr}${execp ping -c 1 -W 5 10.8.42.1 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
VPN_2 :${alignr}${execp ping -c 1 -W 5 10.8.43.1 >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
DNS_1 :${alignr}${execp host -W 5 -t A gstatic.com 8.8.8.8 >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
DNS_2 :${alignr}${execp host -W 5 -t A gstatic.com 80.67.169.40 >/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
MariaDB : ${alignr}${execp mysql -s --connect-timeout=5 -u healthcheck -h 10.8.42.42 -P 3306 -e "quit" >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
${goto 20}${color cyan}Blog Stephane Bortzmeyer${color}
www.bortzmeyer.org :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -s www.bortzmeyer.org >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
7j3ncmar4jm2r3e7.onion :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -k -s http://7j3ncmar4jm2r3e7.onion >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
${goto 20}${color cyan}Facebook${color}
www.facebook.com :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -s https://www.facebook.com >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
facebookcorewwwi.onion :${alignr}${execp torsocks curl --connect-timeout 5 --user-agent "Conky HealthCheck" -s https://www.facebookcorewwwi.onion/ >/dev/null 2>/dev/null && echo '${color green}ONLINE${color}' || echo '${color red}OFFLINE${color}' }
${color yellow}Network List${color}
${execp nmap -n -sn 192.168.42.1-254 | grep -Eo "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" | sed 's/^/${alignc}/' | grep ^ || echo '${alignc}${color rose}network down${color}' }
${execp nmap -n -sn 10.8.42.1-254 | grep -Eo "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))" | sed 's/^/${alignc}/' | grep ^ || echo '${alignc}${color rose}network down${color}' }
```