Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 30/01/2024, à 18:10

matrix-bx

Re : Nouvelle version de wifiCheck

Salut,

pour le mtr, rajouter éventuellement "-Z1" pour limiter l'attente, réduire à 1 ou 2 le -c et si c'est que le début qui nous intéresse, limiter à -m3 peut-être ?
Si 8.8.8.8 ne convient pas, éviter 1.1.1.1 ne serait-ce que pour les gens avec une Livebox et lui préférer 1.0.0.1 ou autre chose.
pour le firewall, ceci vous conviendrait-il ?

(which iptables >/dev/null && echo "Avec iptables" && sudo iptables -L -n ) || ( which nft >/dev/null && echo "Avec nft" && sudo nft list ruleset )

Bonne fin de journée.

Dernière modification par matrix-bx (Le 30/01/2024, à 18:14)


Utilisations des balises de mises en formes.

Hors ligne

#52 Le 30/01/2024, à 20:10

Astrolivier

Re : Nouvelle version de wifiCheck

alors pour mtr et iptables, j'attends de voir les avis. tout ce que j'aimerai c'est être sûr qu'il y a ou pas un firewall (qu'il y ait pas une règle planquée quelque part), et si on accède ou pas au routeur, et au saut suivant. comment on fait ça, je n'ai rien de tranché.

pour sudo je sais pourquoi je ne veux pas le lancer en sudo, je suis content d'avoir mis xdg-open en dernier, c'est super pratique pour les débutants, et on ne va pas le lancer en sudo !

aussi j'ai lu un peu
https://askubuntu.com/questions/939583/ … ash-script
https://unix.stackexchange.com/question … t-practice
https://unix.stackexchange.com/question … at-need-it

je comprends bien la logique, serveur, script au démarrage, cron etc... auquel cas le sudo dans le script est une mauvaise idée.

mais là on est sur de l'aide forum, souvent avec des débutants. je privilégie le côté pratique. et je n'ai pas trouvé de risque particulier. le pire, ce serait un mauvais mot de passe, c'est pas la mer à boire, on relance. à moins qu'un truc m'échappe. je trouve les alternatives pires ou très complexes pour rien (à maintenir)

Dernière modification par Astrolivier (Le 30/01/2024, à 20:17)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#53 Le 30/01/2024, à 20:23

bruno

Re : Nouvelle version de wifiCheck

mais là on est sur de l'aide forum, souvent avec des débutants.

Le résultat est donc destiné à être publié ou copié sur le forum ? Dans ce cas hostnamectl, et mtr sont beaucoup trop intrusifs.


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#54 Le 30/01/2024, à 21:11

Astrolivier

Re : Nouvelle version de wifiCheck

oui

je me posais la question pour les uid de hostnamectl.

pour les autres, malheureusement si on veut, on passe notre temps à ça (ping, route, les hostnames sur le terminal, nom de connexion etc...),


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#55 Le 31/01/2024, à 08:40

bruno

Re : Nouvelle version de wifiCheck

https://www.freedesktop.org/software/sy … ne-id.html
Extrait :

This ID uniquely identifies the host. It should be considered "confidential", and must not be exposed in untrusted environments, in particular on the network.

mtr (ou tracepath, traceroute) est susceptible de révéler l'IP publique ce qui revient à fournir une donnée personnelle.

De manière générale, tu devrais relire attentivement #22 où il ya beaucoup de remarques pertinentes.


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#56 Le 31/01/2024, à 12:26

geole

Re : Nouvelle version de wifiCheck

bruno a écrit :

mtr (ou tracepath, traceroute) est susceptible de révéler l'IP publique ce qui revient à fournir une donnée personnelle.


Ah bon! Les données publiques seraient interdites  au public? C est assez contradictoire.
D autre part, si  la commande montre qu il faut 6 minutes pour répondre, cela vaut vaut le coup de le signaler me semble-t-il.

a@p:~$ time  mtr 8.8.8.8 -rc1
Start: 2024-01-31T11:21:07+0100
HOST: p                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%     1    2.2   2.2   2.2   2.2   0.0
  2.|-- station13.multimania.isdn  0.0%     1   19.9  19.9  19.9  19.9   0.0
  3.|-- 194.149.166.58             0.0%     1   19.9  19.9  19.9  19.9   0.0
  4.|-- 72.14.211.26               0.0%     1   20.9  20.9  20.9  20.9   0.0
  5.|-- 72.14.236.137              0.0%     1   22.1  22.1  22.1  22.1   0.0
  6.|-- 142.251.49.137             0.0%     1   19.2  19.2  19.2  19.2   0.0
  7.|-- dns.google                 0.0%     1   19.1  19.1  19.1  19.1   0.0

real	0m6,145s
user	0m0,009s
sys	0m0,010s
a@p:~$

$
"la première chose à faire étant de confirmer que c'est la liaison WiFi qui est lente et pas autre chose".

et si cela peut empêcher l utilisateur de changer de disque dur inutilement,

Dernière modification par geole (Le 31/01/2024, à 12:32)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#57 Le 31/01/2024, à 12:35

matrix-bx

Re : Nouvelle version de wifiCheck

Salut geole,
et si tu précises "--no-dns" c'est moins long ?


Utilisations des balises de mises en formes.

Hors ligne

#58 Le 31/01/2024, à 12:38

bruno

Re : Nouvelle version de wifiCheck


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#59 Le 31/01/2024, à 12:47

Astrolivier

Re : Nouvelle version de wifiCheck

je comprends que c'est pas top de montrer son ip, ni vraiment utile : si quelqu'un veut te faire chier : il peut.

je rebosse un peu le truc, plus de code, texte plus court, et une troisième option -v pour very long ! (scan wifi, iptables)
j'essaie de prendre en compte les autres remarques (dkms), j'ai aussi d'autres idées. et plein de peaufinage.


plus de hostnamectl et mtr  :

#####  Current kernel, release, desktop  ######

 Current Kernel      : 5.15.0-91-generic 
 Release  Description:	Ubuntu 22.04.3 LTS 
 Current Desktop     : KDE


################    ping    ###################

 ping gateway : ok
 ping 8.8.8.8 : ok


edit : éventuellement je peux mettre

time  mtr 8.8.8.8 -rc1

dans la version longue

Dernière modification par Astrolivier (Le 31/01/2024, à 13:10)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#60 Le 31/01/2024, à 13:07

geole

Re : Nouvelle version de wifiCheck

matrix-bx a écrit :

Salut geole,
et si tu précises "--no-dns" c'est moins long ?

Légèrement moins long

a@p:~$ time  mtr 8.8.8.8 -rc1
Start: 2024-01-31T12:02:39+0100
HOST: p                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%     1    1.3   1.3   1.3   1.3   0.0
  2.|-- station13.multimania.isdn  0.0%     1   19.5  19.5  19.5  19.5   0.0
  3.|-- 194.149.166.58             0.0%     1   22.0  22.0  22.0  22.0   0.0
  4.|-- 72.14.211.26               0.0%     1   19.5  19.5  19.5  19.5   0.0
  5.|-- 72.14.236.137              0.0%     1   22.8  22.8  22.8  22.8   0.0
  6.|-- 142.251.49.137             0.0%     1   19.6  19.6  19.6  19.6   0.0
  7.|-- dns.google                 0.0%     1   19.7  19.7  19.7  19.7   0.0

real	0m6,180s
user	0m0,000s
sys	0m0,017s
a@p:~$ 
a@p:~$ time  mtr 8.8.8.8 -rc1 --no-dns
Start: 2024-01-31T12:03:07+0100

HOST: p                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 192.168.1.254              0.0%     1    2.2   2.2   2.2   2.2   0.0
  2.|-- 194.149.174.110            0.0%     1   20.0  20.0  20.0  20.0   0.0
  3.|-- 194.149.166.58             0.0%     1   20.0  20.0  20.0  20.0   0.0
  4.|-- 72.14.211.26               0.0%     1   19.0  19.0  19.0  19.0   0.0
  5.|-- 72.14.236.137              0.0%     1   21.6  21.6  21.6  21.6   0.0
  6.|-- 142.251.49.137             0.0%     1   19.4  19.4  19.4  19.4   0.0
  7.|-- 8.8.8.8                    0.0%     1   20.0  20.0  20.0  20.0   0.0

real	0m5,960s
user	0m0,009s
sys	0m0,005s
a@p:~$ 
a@p:~$ 
a@p:~$ time  mtr 8.8.8.8 -rc1 
Start: 2024-01-31T12:03:24+0100
HOST: p                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%     1    1.3   1.3   1.3   1.3   0.0
  2.|-- station13.multimania.isdn  0.0%     1   20.5  20.5  20.5  20.5   0.0
  3.|-- 194.149.166.58             0.0%     1   19.6  19.6  19.6  19.6   0.0
  4.|-- 72.14.211.26               0.0%     1   20.0  20.0  20.0  20.0   0.0
  5.|-- 72.14.236.137              0.0%     1   21.8  21.8  21.8  21.8   0.0
  6.|-- 142.251.49.137             0.0%     1   21.0  21.0  21.0  21.0   0.0
  7.|-- dns.google                 0.0%     1   18.4  18.4  18.4  18.4   0.0

real	0m6,161s
user	0m0,000s
sys	0m0,017s
a@p:~$ time  mtr 8.8.8.8 -rc1 --no-dns
Start: 2024-01-31T12:03:37+0100
HOST: p                           Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- 192.168.1.254              0.0%     1    2.2   2.2   2.2   2.2   0.0
  2.|-- 194.149.174.110            0.0%     1   20.6  20.6  20.6  20.6   0.0
  3.|-- 194.149.166.58             0.0%     1   19.5  19.5  19.5  19.5   0.0
  4.|-- 72.14.211.26               0.0%     1   21.6  21.6  21.6  21.6   0.0
  5.|-- 72.14.236.137              0.0%     1   20.9  20.9  20.9  20.9   0.0
  6.|-- 142.251.49.137             0.0%     1   21.0  21.0  21.0  21.0   0.0
  7.|-- 8.8.8.8                    0.0%     1   19.6  19.6  19.6  19.6   0.0

real	0m5,960s
user	0m0,010s
sys	0m0,005s
a@p:~$ 

Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#61 Le 31/01/2024, à 13:16

bruno

Re : Nouvelle version de wifiCheck

man time a écrit :

Les utilisateurs de l'interpréteur bash doivent utiliser un chemin explicite pour lancer une commande time
       externe, et non la variante de la commande interne à l'interpréteur.. Sur un système où time est installé dans
       /usr/bin, le premier exemple deviendrait
            /usr/bin/time wc /etc/hosts


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#62 Le 31/01/2024, à 13:22

Astrolivier

Re : Nouvelle version de wifiCheck

version courte (sans option) pour l'instant   (150 lignes)

###############################################
###########    Wifi Check    ##################
###############################################


############     Date     #####################

2024-01-31


#####  Current kernel, release, desktop  ######

 Current Kernel      : 5.15.0-91-generic 
 Release  Description:	Ubuntu 22.04.3 LTS 
 Current Desktop     : KDE


####### lspci -k -nn | grep -A 3 -i net  ######

02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
	Kernel driver in use: ath10k_pci
	Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
	Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
	Kernel driver in use: r8169
	Kernel modules: r8169


########     sudo lshw -C network     #########

  *-network
       description: Wireless interface
       product: QCA9377 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 31
       serial: c8:94:02:e1:cb:65
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-91-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:135 memory:a1000000-a11fffff
  *-network
       description: Ethernet interface
       product: RTL810xE PCI Express Fast Ethernet controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 07
       serial: b4:45:06:7c:4b:14
       capacity: 100Mbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-91-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff


################     lsusb     ################

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


#######   lsmod | grep -E '<modules>'   #######

Module                  Size  Used by
ath10k_pci             49152  0
ath10k_core           602112  1 ath10k_pci
ath                    36864  1 ath10k_core
mac80211             1249280  1 ath10k_core
cfg80211              974848  3 ath,mac80211,ath10k_core


#### lsmod | grep -E '<unsupportedModules>' ###



#################  dkms status  ###############

le paquet dkms n'est pas présent


#########   mokutil --sb-state    #############

SecureBoot disabled


##########    sudo rfkill list    #############

0: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no


################    ip a    ###################

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 79965sec preferred_lft 79965sec
    inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


################    ping    ###################

 ping gateway : ok
 ping 8.8.8.8 : ok


#########  resolvectl | grep Server  #########

Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1


###########    sudo ufw status    #############

État : inactif


######    cat /etc/network/interfaces   #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes#

cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type


###########    nmcli dev wifi    ##############

IN-USE  BSSID              SSID             MODE   CHAN  RATE        SIGNAL  BARS  SECURITY    
*       6C:61:F4:3D:52:9E  SFR_5298         Infra  1     130 Mbit/s  53      ▂▄__  WPA1 WPA2   
        6C:61:F4:3D:52:9D  SFR_5298_5GHZ    Infra  52    405 Mbit/s  44      ▂▄__  WPA1 WPA2   
        62:45:B6:BE:38:03  --               Infra  165   0 Mbit/s    27      ▂___  WEP         
        0E:6E:66:AC:6E:45  FreeWifi_secure  Infra  1     270 Mbit/s  20      ▂___  WPA1 802.1X 

Dernière modification par Astrolivier (Le 31/01/2024, à 13:24)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#63 Le 31/01/2024, à 13:49

matrix-bx

Re : Nouvelle version de wifiCheck

Re,
si on ne veux pas, au moins dans un 1er temps, afficher d'infos sensibles, ou pourrait par exemple :

ping -q -c1 -w1 1.0.0.1 >/dev/null && echo "Connectivité IPv4 OK." || echo "Connectivité IPv4 NOK !"
ping6 -q -c1 -w1 2600:: >/dev/null && echo "Connectivité IPv6 OK." || echo "Connectivité IPv6 NOK !"
ping -4 -q -c1 -w1 x.org >/dev/null && echo "Résolution DNS et connectivité IPv4 OK." || echo "Résolution DNS et/ou connectivité IPv4 NOK !"
ping -6 -q -c1 -w1 debian.org >/dev/null && echo "Résolution DNS et connectivité IPv6 OK." || echo "Résolution DNS et/ou connectivité IPv6 NOK !"

Qu'en dites vous ?


Utilisations des balises de mises en formes.

Hors ligne

#64 Le 31/01/2024, à 15:07

Astrolivier

Re : Nouvelle version de wifiCheck

j'ai fait plus long !

find_my_gateway() {
  ip route show | grep default | cut -d' ' -f 3
}


exit_status_of_ping_gateway() {
 ping -c 4 $(find_my_gateway) &>/dev/null
}

exit_status_of_ping_google() {
  ping -c 4 8.8.8.8 &>/dev/null
}

if  exit_status_of_ping_gateway  ; then
    echo " ping gateway : ok"
  else
    echo " ping gateway : not ok"
  fi


  if  exit_status_of_ping_google  ; then
    echo " ping 8.8.8.8 : ok"
  else
    echo " ping 8.8.8.8 : not ok"
  fi

par contre je ne comprends pas la syntaxe

commande && succes || !success

c'est particulier à bash ?


ps : c'est plus long mais c'est aussi parce que je vais mettre un switchcase pour les langues (français, anglais chinois)

Dernière modification par Astrolivier (Le 31/01/2024, à 15:09)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#65 Le 31/01/2024, à 15:26

matrix-bx

Re : Nouvelle version de wifiCheck

Re Astrolivier

ip route show default | cut -d" " -f3

est suffisant (sauve un grep).
Pourquoi envoyer 4 pings ? un seul voir 2 ne suffirait pas ?
la syntaxe && (et) + || (ou) est classique, l’exécution dépend de la valeur de retour de la 1 ere cmde

$ ping -c1 -w1 toto.com > /dev/null ; echo $?
1
$ ping -c1 -w1 toto.com > /dev/null && echo "ok" || echo "nok"
nok
$

Utilisations des balises de mises en formes.

Hors ligne

#66 Le 01/02/2024, à 12:33

Astrolivier

Re : Nouvelle version de wifiCheck

merci !

j'ai mis ça pour l'instant

find_my_gateway() {
  ip route show default | cut -d" " -f3
}

ping -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv4 : ok" || echo "ping gateway ipv4 : mauvais !"
ping6 -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv6 : ok" || echo "ping gateway ipv6 : mauvais"
ping -4 -q -c1 -w1 1.0.0.1 &>/dev/null && echo "ping cloudflare ipv4 : ok" || echo "ping cloudflare ipv4 : mauvais"
ping -6 -q -c1 -w1 2606:4700:4700::1001 &>/dev/null && echo "ping cloudflare ipv6 : ok" || echo "ping cloudflare ipv6 : mauvais"

retour

ping gateway ipv4 : ok
ping gateway ipv6 : mauvais
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : mauvais

je ne demande pas de résolution dns parce qu'à priori, la demande c'est "j'ai pas d'internet" et si on voit "ping ok"  on comprend vite d'où ça vient
je me demande si -w1 est nécessaire, ou pas un peu juste (timeout de 1s)
j'ai pas compris à quoi correspondait 2600::   alors j'ai mis le dns cloudflare (a priori une bonne idée ; je me suis pas encore penché sur ipv6, pas l’utilité)
pas sûr que l'ipv6 cloudflare serve beaucoup, a priori dès que ça passe dans une box c'est empaqueté en ipv4
je sais pas si ma fonction renvoie le gateway ipv6 (je peux pas tester)



ps : ça fait bizarre quand même le coup du succes = 0 dans les tests bash

Dernière modification par Astrolivier (Le 01/02/2024, à 12:34)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#67 Le 01/02/2024, à 12:49

matrix-bx

Re : Nouvelle version de wifiCheck

Salut Astrolivier
"2600::" est juste une ipv6 valide, très courte, et facile à retenir

$ host 2600::
0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.2.ip6.arpa domain name pointer www.sprint.net.
$  ping6 -q -c1 2600::
PING 2600::(2600::) 56 data bytes
--- 2600:: ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 134.115/134.115/134.115/0.000 ms
$ 

Pour la gw ipv6 il faut spécifier "-6" (ip -6 r s default | cut -d" " -f3)


Utilisations des balises de mises en formes.

Hors ligne

#68 Le 05/02/2024, à 10:30

Astrolivier

Re : Nouvelle version de wifiCheck

j'ai eu une idée hier au sujet du lsmod. j'étais parti sur l'idée de faire une liste de tous les modules wifi, pour faire un grep dessus, et n'avoir en retour que les modules wifi installés et pas toute la liste. ceci s'est avéré problématiques : il y en a trop, c'est le bordel. mais :

https://www.kernel.org/doc/html/v4.12/d … 80211.html

cfg80211 is the configuration API for 802.11 devices in Linux. It bridges userspace and drivers, and offers some utility functionality associated with 802.11. cfg80211 must, directly or indirectly via mac80211, be used by all modern wireless drivers in Linux, so that they offer a consistent API through nl80211. For backward compatibility, cfg80211 also offers wireless extensions to userspace, but hides them from drivers completely.

tous les modules wifi doivent passer par cfg80211 à un moment ou à un autre.

donc je cherche, s'il vous plaît, une commande qui à partir du résultat du

$ lsmod |grep cfg80211
cfg80211              974848  3 ath,mac80211,ath10k_core

me renvoie aussi

lsmod |grep -E 'ath|mac80211|ath10k_core' 

le but est d'avoir un truc comme ça à la fin (sauf la ligne avec le #, quoi que idéalement ce serait bien de l'avoir aussi)

Module                  Size  Used by
#ath10k_pci             49152  0
ath10k_core           602112  1 ath10k_pci
ath                    36864  1 ath10k_core
mac80211             1249280  1 ath10k_core
cfg80211              974848  3 ath,mac80211,ath10k_core

je pourrais faire un truc pas très propre (j'ai commencé à regarder avec awk), mais je suis sûr que vous ferez mieux et que j'apprendrai des trucs big_smile

Dernière modification par Astrolivier (Le 05/02/2024, à 10:31)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#69 Le 07/02/2024, à 03:33

Astrolivier

Re : Nouvelle version de wifiCheck

bruno a écrit :
man time a écrit :

Les utilisateurs de l'interpréteur bash doivent utiliser un chemin explicite pour lancer une commande time
       externe, et non la variante de la commande interne à l'interpréteur.. Sur un système où time est installé dans
       /usr/bin, le premier exemple deviendrait
            /usr/bin/time wc /etc/hosts


je comprends pas ce résultat !

$ /usr/bin/time mtr 8.8.8.8 -rc1 
Start: 2024-02-07T02:24:52+0100
HOST: poney2204-inspiron          Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- box                        0.0%     1    6.3   6.3   6.3   6.3   0.0
  2.|-- 1.179.194.77.rev.sfr.net   0.0%     1   21.8  21.8  21.8  21.8   0.0
  3.|-- 217.169.223.213.rev.sfr.n  0.0%     1   21.4  21.4  21.4  21.4   0.0
  4.|-- 14.233.65.86.rev.sfr.net   0.0%     1   22.4  22.4  22.4  22.4   0.0
  5.|-- 25.213.96.84.rev.sfr.net   0.0%     1   22.2  22.2  22.2  22.2   0.0
  6.|-- 17.213.96.84.rev.sfr.net   0.0%     1   21.6  21.6  21.6  21.6   0.0
  7.|-- 59.145.6.194.rev.sfr.net   0.0%     1   23.1  23.1  23.1  23.1   0.0
  8.|-- dns.google                 0.0%     1   40.4  40.4  40.4  40.4   0.0
0.00user 0.01system 0:06.05elapsed 0%CPU (0avgtext+0avgdata 5256maxresident)k
0inputs+0outputs (0major+1023minor)pagefaults 0swaps




$ time mtr 8.8.8.8 -rc1 
Start: 2024-02-07T02:25:10+0100
HOST: poney2204-inspiron          Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- box                        0.0%     1    5.8   5.8   5.8   5.8   0.0
  2.|-- 1.179.194.77.rev.sfr.net   0.0%     1   21.2  21.2  21.2  21.2   0.0
  3.|-- 217.169.223.213.rev.sfr.n  0.0%     1   21.8  21.8  21.8  21.8   0.0
  4.|-- 14.233.65.86.rev.sfr.net   0.0%     1   22.1  22.1  22.1  22.1   0.0
  5.|-- 25.213.96.84.rev.sfr.net   0.0%     1   28.6  28.6  28.6  28.6   0.0
  6.|-- 17.213.96.84.rev.sfr.net   0.0%     1   23.8  23.8  23.8  23.8   0.0
  7.|-- 59.145.6.194.rev.sfr.net   0.0%     1   23.7  23.7  23.7  23.7   0.0
  8.|-- dns.google                 0.0%     1   39.6  39.6  39.6  39.6   0.0

real    0m6,062s
user    0m0,008s
sys     0m0,016s



$ which time
/usr/bin/time

je voulais faire un grep -E "real|user|sys"  , mais quand je passe par le chemin complet j'ai plus la même réponse  neutral
je vais peut être pas la mettre



et pour les modules j'ai mis ça (pas trouvé mieux mais j'ai le résultat que je veux en passant par cfg80211, normalement on loupe rien) :

declare -a modules_array
declare -a lsmod_line_array

readarray -t modules_array < <(lsmod | grep cfg80211 | awk '{split($4, a, ","); for (i in a) print a[i]}')

for i in $modules_array ; do
readarray -t -O"${#modules_array[@]}"  modules_array   < <(lsmod | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
done

for i in $modules_array ; do
readarray -t -O"${#modules_array[@]}"  modules_array   < <(lsmod | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
done

for i in $modules_array ; do
readarray -t lsmod_line_array   < <(lsmod | grep ${modules_array[$i]} )
done

echo "Module                  Size  Used by"
printf "%s \n" "${lsmod_line_array[@]}" |sort -u

résultat

#######   lsmod | grep <wifi_modules>   #######

Module                  Size  Used by
ath10k_core           602112  1 ath10k_pci 
ath10k_pci             49152  0 
ath                    36864  1 ath10k_core 
cfg80211              974848  3 ath,mac80211,ath10k_core 
mac80211             1249280  1 ath10k_core 

résultat complet (version courte)

###############################################
###########    Wifi Check    ##################
###############################################


############     Date     #####################

2024-02-07


#####  Current kernel, release, desktop  ######

 Current Kernel      :  5.15.0-92-generic 
 Release  Description:    Ubuntu 22.04.3 LTS 
 Current Desktop     :  KDE


####### lspci -k -nn | grep -A 3 -i net  ######

02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
    Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
    Kernel driver in use: ath10k_pci
    Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
    Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
    Kernel driver in use: r8169
    Kernel modules: r8169


########     sudo lshw -C network     #########

  *-network
       description: Wireless interface
       product: QCA9377 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 31
       serial: c8:94:02:e1:cb:65
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-92-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:135 memory:a1000000-a11fffff
  *-network
       description: Ethernet interface
       product: RTL810xE PCI Express Fast Ethernet controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 07
       serial: b4:45:06:7c:4b:14
       capacity: 100Mbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-92-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff


################     lsusb     ################

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


#######   lsmod | grep <wifi_modules>   #######

Module                  Size  Used by
ath10k_core           602112  1 ath10k_pci 
ath10k_pci             49152  0 
ath                    36864  1 ath10k_core 
cfg80211              974848  3 ath,mac80211,ath10k_core 
mac80211             1249280  1 ath10k_core 


#################  dkms status  ###############

le paquet dkms n'est pas présent


#########   mokutil --sb-state    #############

SecureBoot disabled


##########    sudo rfkill list    #############

0: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no


################    ip a    ###################

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 45311sec preferred_lft 45311sec
    inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


################    ping no-DNS   ###################

ping gateway ipv4 : ok
ping gateway ipv6 : mauvais
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : mauvais


#########  resolvectl | grep Server  #########

Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1


###########    sudo ufw status    #############

État : inactif


######    cat /etc/network/interfaces   #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes #

cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type


###########    nmcli dev show    ##############

DEVICE          TYPE      STATE         CONNECTION 
wlp2s0          wifi      connecté      SFR_5298   
p2p-dev-wlp2s0  wifi-p2p  déconnecté    --         
enp3s0          ethernet  indisponible  --         
lo              loopback  non-géré      --         


###########    nmcli dev wifi    ##############

IN-USE  BSSID              SSID           MODE   CHAN  RATE        SIGNAL  BARS  SECURITY  
*       6C:61:F4:3D:52:9E  SFR_5298       Infra  6     130 Mbit/s  100     ▂▄▆█  WPA1 WPA2 
        6C:61:F4:3D:52:9D  SFR_5298_5GHZ  Infra  52    405 Mbit/s  99      ▂▄▆█  WPA1 WPA2 
        62:45:B6:BE:38:03  --             Infra  165   0 Mbit/s    85      ▂▄▆█  WEP       

Dernière modification par Astrolivier (Le 07/02/2024, à 03:44)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#70 Le 08/02/2024, à 21:49

Astrolivier

Re : Nouvelle version de wifiCheck

la dernière version (j'en ai chié pour le lsmod, mais finalement je suis assez satisfait big_smile    enfin j'espère)


le code  (mettre dans wificheck.sh, chmod 755, lancer avec ./ , comme d'hab' c'est juste une pêche aux infos, aucun changement sur le système)

#!/usr/bin/env bash


#############################################################################################################################################
# 2012 → 2022 - cracolinux
# 2020 - Mise à jour par j1v3_d4_v0m17 : https://github.com/j1v3/wificheck
# 2020 - Modification suite remarque par Watael : https://forum.ubuntu-fr.org/viewtopic.php?pid=22395338#p22395338
# 2022 - Modification suite à la proposition de Bruno : https://forum.ubuntu-fr.org/viewtopic.php?pid=22552050#p22552050
# 2023 - Ajout de la commande bootctl, remarque par NicoApi73 via xubu1957 : https://forum.ubuntu-fr.org/viewtopic.php?pid=22631234#p22631234
# 2024 - Refonte Astrolivier suppression des commandes obsolètes, ajout de iw, systemctl
#
# v2.1
#
# LICENCE:
#
# 		LICENCE PUBLIQUE RIEN À BRANLER
# 		Version 1, Mars 2009
# 		Copyright (C) 2009 Sam Hocevar
# 		14 rue de Plaisance, 75014 Paris, France
#
# 			La copie et la distribution de copies exactes de cette licence sont
# 			autorisées, et toute modification est permise à condition de changer
# 			le nom de la licence.
#
# 		CONDITIONS DE COPIE, DISTRIBUTION ET MODIFICATION
# 		DE LA LICENCE PUBLIQUE RIEN À BRANLER
#
# 		0. Faites ce que vous voulez, j’en ai RIEN À BRANLER.
#############################################################################################################################################


##uncomment for debug mode in file debug_output.txt in local repository
#exec 5> debug_output.txt
#BASH_XTRACEFD="5"
#PS4='$LINENO: '
#set -x

shopt -s nullglob

# Set language as enum : french = 0 ; english = 1 ; chinese = 2 . Default is french.
declare -i language
language=0

# Set as enum if wificheck prints the short output without iw commands
# or the long output with iw commands
# this mainly because iw is not installed by default, and is quite long as it adds 300 lines minimum.
# short = 0 ; long = 1 ; very long = 2
declare -i short_or_long_output
short_or_long_output=0

# set as enum to print bbcode for french forum
# with bbcode = 0 ; without bbcode = 1
declare -i print_bbcode_or_not
print_bbcode_or_not=0

#variables array for lsmod and modinfo
declare -a modules_array
declare lsmod_variable



# print help on stdout with -h or bad argument
help() {
  echo ""
  echo "wifiCheck is a program that prints wifi info, originally created to help in the French Ubuntu forum."
  echo "French is the default language, and bbscode is the default output."
  echo ""
  echo "USAGE:"
  echo " ./wificheck.sh [options]"
  echo ""
  echo " -l    print long version with iw commands; if iw package is not present, switch to short version"
  echo " -v    print a very long version with a scan"
  echo " -s    print short version, default behavior"
  echo " -e    print english version"
  echo " -c    print chinese version"
  echo " -n    doesn't print bbcode"
  echo " -h    print help"
  exit 0
}







# Main function
wificheck_function() {
  echo      "###############################################"
  echo      "###########    Wifi Check    ##################"
  echo      "###############################################"



  echo -e "\n\n############     Date     #####################\n"
  printf '%(%Y-%m-%d)T\n' -1


  echo -e "\n\n#####  Current kernel, release, desktop  ######\n"

  local uname
  uname=$(uname "-r")
  echo -e " Current Kernel      :  ${uname} "

  local release
  release=$(lsb_release "-d")
  echo -e " Release  ${release} "

  echo    " Current Desktop     :  $XDG_CURRENT_DESKTOP"


  echo -e "\n\n####### lspci -k -nn | grep -A 3 -i net  ######\n"
  lspci -k -nn | grep -A 3 -i net


  echo -e "\n\n########     sudo lshw -C network     #########\n"
  sudo lshw -C network


  echo -e "\n\n################     lsusb     ################\n"
  lsusb


  echo -e "\n\n#######   lsmod | grep <wifi_modules>   #######\n"
  lsmod_function


  echo -e "\n\n#################  dkms status  ###############\n"
  if [[ "$(which "dkms")" = "" ]]; then
   case ${language} in
    0)
      echo "le paquet dkms n'est pas présent"
      ;;

    1)
      echo "dkms package is not available"
      ;;

    2)
      echo "dkms软件包不可用"
      ;;
    esac
  else
    dkms status
  fi


  echo -e "\n\n#########   mokutil --sb-state    #############\n"
  mokutil --sb-state


  echo -e "\n\n##########    sudo rfkill list    #############\n"
  sudo rfkill list


  echo -e "\n\n################    ip a    ###################\n"
  ip a


  echo -e "\n\n################    ping no-DNS   ###################\n"
  ping -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv4 : ok" || echo "ping gateway ipv4 : mauvais !"
  ping6 -q -c1 -w1 $(find_my_gateway) &>/dev/null && echo "ping gateway ipv6 : ok" || echo "ping gateway ipv6 : mauvais"
  ping -4 -q -c1 -w1 1.0.0.1 &>/dev/null && echo "ping cloudflare ipv4 : ok" || echo "ping cloudflare ipv4 : mauvais"
  ping -6 -q -c1 -w1 2606:4700:4700::1001 &>/dev/null && echo "ping cloudflare ipv6 : ok" || echo "ping cloudflare ipv6 : mauvais"


  echo -e "\n\n#########  resolvectl | grep Server  #########\n"
  resolvectl | grep Server


  echo -e "\n\n###########    sudo ufw status    #############\n"
  sudo ufw status


  echo -e "\n\n######    cat /etc/network/interfaces   #######"
  case ${language} in
    0)
      echo -e "# ce fichier est obsolète sauf si vous savez ce que vous faîtes #\n"
      ;;

    1)
      echo -e "## this file is deprecated except if you know what you're doing ##\n"
      ;;

    2)
      echo -e "######   该文件已弃用,除非您知道自己在做什么 #######"
      ;;
  esac
  cat /etc/network/interfaces


  echo -e "\n\n###########    nmcli dev show    ##############\n"
  nmcli d s


  echo -e "\n\n###########    nmcli dev wifi    ##############\n"
  nmcli dev wifi
}





long_function() {
  echo -e "\n\n#######   modinfo <wifi_modules> |grep parm   #######\n"
  for module in ${modules_array[@]} ; do
    echo -e "\n  Modules parm for ${module} :"
    modinfo ${module} |grep parm
  done

  echo -e "\n\n####### systemctl list network units  #########\n"
  systemctl list-units --type=service --all |grep -iE 'network|wpa'


  echo -e "\n\n########    nmcli connection show   ###########\n"
  nmcli connection show 2>/dev/null


  #echo -e "\n\n#########  time  mtr 8.8.8.8 -rc1   ###########\n"
  #/usr/bin/env time mtr 8.8.8.8 -rc1 | grep -E "real|user|sys"
}




# For long argument. Adds iw commands
iw_long_function() {
  echo -e "\n\n##############    iw dev   ####################\n"
  iw dev

  echo -e "\n\n#########    iw dev $interface link    #############\n"
  iw dev $interface link

  echo -e "\n\n########   iw dev $interface station dump  ###########\n"
  iw dev $interface station dump
}



### very long version
very_long_function() {
  echo -e "\n\n#### iptables -vL -t filter|nat|mangle|raw|security  #####\n"
  echo "\n    ### table filter ###"
  sudo iptables -vL -t filter
  echo "\n    ### table nat ###"
  sudo iptables -vL -t nat
  echo "\n    ### table mangle ###"
  sudo iptables -vL -t mangle
  echo "\n    ### table raw ###"
  sudo iptables -vL -t raw
  echo "\n    ### table security ###"
  sudo iptables -vL -t security
}




iw_very_long_function() {
  echo -e "\n\n########   iw list  ###########\n"
  iw list

  echo -e "\n\n############    iw dev $interface scan   ############\n"
  sudo iw dev $interface scan
}





## find the modules that use cfg80211, find modules that use those modules,
## print the lsmod of all these modules, sort only one instace
lsmod_function() {
  modules_array=("cfg80211")
  lsmod_variable=$(lsmod)

  readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "cfg80211" | awk '{split($4, a, ","); for (i in a) print a[i]}')

  for i in ${!modules_array[@]} ; do
  readarray -t -O"${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)

  for i in ${!modules_array[@]} ; do
  readarray -t -O"${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
  echo  "Module                  Size  Used by"

  for i in ${modules_array}; do
  printf "%s\n" "$(echo "${lsmod_variable}" |grep "${modules_array[i]}" )"
  done
}







### function for ping printing in wificheck_function
find_my_gateway() {
  ip route show default | cut -d" " -f3
}


##### function to insert bbcode markup for french forum
bbcode_open_function() {
  echo "[code]"
}

bbcode_close_fonction() {
  echo "[/code]"
}


# put stdout and stderr in the file wificheck.log in your $HOME
exec_in_file() {
  exec 3>&1
  exec &>~/wificheck.log
}

# put back stdout on terminal
exec_in_stdout() {
  exec >&3-
}


###### print on terminal at the end
french_terminal_output() {
  echo "####################################################################"
  echo "Le fichier wificheck.log a été crée dans "$HOME""
  echo "Vous n'avez plus qu'à copier/coller son contenu entier sur le forum"
  echo " accès →→ "$HOME"/wificheck.log"
  echo "####################################################################"
}

english_terminal_output() {
  echo "####################################################################"
  echo "File wificheck.log has been created in "$HOME""
  echo "You simply have to copy/paste the entire content on the forum"
  echo "Markup is bbcode for french ubuntu forum"
  echo " acces →→ "$HOME"/wificheck.log"
  echo "####################################################################"
}

chinese_terminal_output() {
  echo "####################################################################"
  echo "wificheck.log 文件已创建在 "$HOME""
  echo "你只需将整个内容复制/粘贴到论坛上"
  echo "标记语言是法国Ubuntu论坛的BBCode"
  echo " 访问 →→ "$HOME"/wificheck.log"
  echo "####################################################################"
}









######################################################
################   main   ############################

## check for arguments and set variable
while getopts "hslecnv" arg; do
  case $arg in
    l)
      short_or_long_output=1
      ;;
    s)
      short_or_long_output=0
      ;;
    v)
      short_or_long_output=2
      ;;
    e)
      language=1
      ;;

    c)
      language=2
      ;;

    n)
      print_bbcode_or_not=1
      ;;

    h)
      help
      ;;
    \?)
      echo "Invalid option: -$OPTARG"
      help
      ;;
#    :)
#      echo "Option -$OPTARG requires an argument."
#      help
#      ;;
  esac
done


# check if iw is present, should be distro free
if [[ "$(which "iw")" = "" ]] && [[ ${short_or_long_output} -gt 1 ]] ; then
    short_or_long_output=0

    case ${language} in
    0)
      echo "le paquet iw n'est pas présent"
      ;;

    1)
      echo "iw package is not available"
      ;;

    2)
      echo "iw软件包不可用"
      ;;
    esac
fi



exec_in_file

if [[ ${print_bbcode_or_not} -eq 0 ]]; then
  bbcode_open_function
fi



wificheck_function




if [[ ${short_or_long_output} -eq 1 ]]; then
  for interface in /sys/class/net/w[lw]*; do
    interface=${interface##*/}
    iw_long_function
  done
  long_function
fi


if [[ ${short_or_long_output} -eq 2 ]]; then
  for interface in /sys/class/net/w[lw]*; do
    interface=${interface##*/}
    iw_long_function
    iw_very_long_function
  done
  long_function
  very_long_function
fi


if [[ ${print_bbcode_or_not} -eq 0 ]]; then
  bbcode_close_fonction
fi



exec_in_stdout



case ${language} in
  0)
    french_terminal_output
    ;;

  1)
    english_terminal_output
    ;;

  2)
    chinese_terminal_output
    ;;
esac

## open graphical text editor and print nothing on terminal (otherwise terminal won't close)
xdg-open ~/wificheck.log 1>/dev/null 2>&1

./wificheck.sh -h

wifiCheck is a program that prints wifi info, originally created to help in the French Ubuntu forum.
French is the default language, and bbscode is the default output.

USAGE:
 ./wificheck.sh [options]

 -l    print long version with iw commands; if iw package is not present, switch to short version
 -v    print a very long version with a scan
 -s    print short version, default behavior
 -e    print english version
 -c    print chinese version
 -n    doesn't print bbcode
 -h    print help

chez moi la version courte fait 160 lignes, la longue 300, la très longue 1000 (mais on a toutes les commandes supportées par la carte wifi, les cannaux, fréquences, metriques et un scan wifi avec tous les détails... et encore, je capte que 4 réseaux wifi chez moi, je vous dis pas en appart !)
je vous mets la version longue, j'ai mis un séparateur entre la courte et la longue pour vous donner une idée (---------)

apparement ça peut prendre un certain temps, chez moi c'est assez rapide, je pense que c'est surtout le scan (nmcli dev wifi) et xdg-open qui prennent du temps (lshw aussi un peu)

###############################################
###########    Wifi Check    ##################
###############################################


############     Date     #####################

2024-02-08


#####  Current kernel, release, desktop  ######

 Current Kernel      :  5.15.0-94-generic 
 Release  Description:	Ubuntu 22.04.3 LTS 
 Current Desktop     :  KDE


####### lspci -k -nn | grep -A 3 -i net  ######

02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
	Kernel driver in use: ath10k_pci
	Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
	Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
	Kernel driver in use: r8169
	Kernel modules: r8169


########     sudo lshw -C network     #########

  *-network
       description: Wireless interface
       product: QCA9377 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 31
       serial: c8:94:02:e1:cb:65
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-94-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:135 memory:a1000000-a11fffff
  *-network
       description: Ethernet interface
       product: RTL810xE PCI Express Fast Ethernet controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 07
       serial: b4:45:06:7c:4b:14
       capacity: 100Mbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-94-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff


################     lsusb     ################

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


#######   lsmod | grep <wifi_modules>   #######

Module                  Size  Used by
ath10k_pci             49152  0
ath10k_core           602112  1 ath10k_pci
ath                    36864  1 ath10k_core
mac80211             1249280  1 ath10k_core
cfg80211              974848  3 ath,mac80211,ath10k_core


#################  dkms status  ###############

le paquet dkms n'est pas présent


#########   mokutil --sb-state    #############

SecureBoot disabled


##########    sudo rfkill list    #############

0: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no


################    ip a    ###################

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 73659sec preferred_lft 73659sec
    inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


################    ping no-DNS   ###################

ping gateway ipv4 : ok
ping gateway ipv6 : mauvais
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : mauvais


#########  resolvectl | grep Server  #########

Current DNS Server: 192.168.1.1
       DNS Servers: 192.168.1.1


###########    sudo ufw status    #############

État : inactif


######    cat /etc/network/interfaces   #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes #

cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type


###########    nmcli dev show    ##############

DEVICE          TYPE      STATE         CONNECTION 
wlp2s0          wifi      connecté      SFR_5298   
p2p-dev-wlp2s0  wifi-p2p  déconnecté    --         
enp3s0          ethernet  indisponible  --         
lo              loopback  non-géré      --         


###########    nmcli dev wifi    ##############

IN-USE  BSSID              SSID                 MODE   CHAN  RATE        SIGNAL  BARS  SECURITY  
        6C:61:F4:3D:52:9D  SFR_5298_5GHZ        Infra  52    405 Mbit/s  97      ▂▄▆█  WPA1 WPA2 
*       6C:61:F4:3D:52:9E  SFR_5298             Infra  1     130 Mbit/s  92      ▂▄▆█  WPA1 WPA2 
        62:45:B6:BE:38:03  --                   Infra  165   0 Mbit/s    80      ▂▄▆_  WEP       
        A0:1B:29:B6:D2:D0  --                   Infra  11    130 Mbit/s  20      ▂___  WPA1 WPA2 
        8C:6D:50:92:2F:F4  CPL wifi 500_922FF4  Infra  1     270 Mbit/s  19      ▂___  WPA1 WPA2 
        A0:1B:29:B6:D2:D0  Bbox-66619CA1        Infra  11    130 Mbit/s  14      ▂___  WPA1 WPA2 


----------------------------------------------------------------------------------------        
        
        
##############    iw dev   ####################

phy#0
	Unnamed/non-netdev interface
		wdev 0x3
		addr c8:94:02:e1:cb:65
		type P2P-device
		txpower 0.00 dBm
	Interface wlp2s0
		ifindex 3
		wdev 0x1
		addr c8:94:02:e1:cb:65
		ssid SFR_5298
		type managed
		channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
		txpower 20.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0


#########    iw dev wlp2s0 link    #############

Connected to 6c:61:f4:3d:52:9e (on wlp2s0)
	SSID: SFR_5298
	freq: 2412
	RX: 121057472 bytes (144113 packets)
	TX: 16094848 bytes (69405 packets)
	signal: -45 dBm
	rx bitrate: 65.0 MBit/s MCS 7
	tx bitrate: 1.0 MBit/s

	bss flags:	short-preamble short-slot-time
	dtim period:	3
	beacon int:	100


########   iw dev wlp2s0 station dump  ###########

Station 6c:61:f4:3d:52:9e (on wlp2s0)
	inactive time:	1904 ms
	rx bytes:	121057472
	rx packets:	144113
	tx bytes:	16094848
	tx packets:	69405
	tx retries:	0
	tx failed:	0
	beacon loss:	0
	beacon rx:	16768
	rx drop misc:	172
	signal:  	-45 [-45, -73] dBm
	signal avg:	-46 [-46, -73] dBm
	beacon signal avg:	-46 dBm
	tx bitrate:	1.0 MBit/s
	tx duration:	31893635 us
	rx bitrate:	65.0 MBit/s MCS 7
	rx duration:	0 us
	authorized:	yes
	authenticated:	yes
	associated:	yes
	preamble:	long
	WMM/WME:	yes
	MFP:		no
	TDLS peer:	no
	DTIM period:	3
	beacon interval:100
	short preamble:	yes
	short slot time:yes
	connected time:	12751 seconds
	associated at [boottime]:	24988.490s
	associated at:	1707408785429 ms
	current time:	1707421535924 ms


#######   modinfo <wifi_modules> |grep parm   #######


  Modules parm for ath :

  Modules parm for ath10k_core :
parm:           debug_mask:Debugging mask (uint)
parm:           uart_print:Uart target debugging (bool)
parm:           skip_otp:Skip otp failure for calibration in testmode (bool)
parm:           cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm:           rawmode:Use raw 802.11 frame datapath (bool)
parm:           coredump_mask:Bitfield of what to include in firmware crash file (ulong)
parm:           fw_diag_log:Diag based fw log debugging (bool)

  Modules parm for ath10k_pci :
parm:           irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm:           reset_mode:0: auto, 1: warm only (default: 0) (uint)

  Modules parm for cfg80211 :
parm:           bss_entries_limit:limit to number of scan BSS entries (per wiphy, default 1000) (int)
parm:           ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
parm:           cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)

  Modules parm for mac80211 :
parm:           minstrel_vht_only:Use only VHT rates when VHT is supported by sta. (bool)
parm:           max_nullfunc_tries:Maximum nullfunc tx tries before disconnecting (reason 4). (int)
parm:           max_probe_tries:Maximum probe tries before disconnecting (reason 4). (int)
parm:           beacon_loss_count:Number of beacon intervals before we decide beacon was lost. (int)
parm:           probe_wait_ms:Maximum time(ms) to wait for probe response before disconnecting (reason 4). (int)
parm:           ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)


####### systemctl list network units  #########

  networkd-dispatcher.service                                                               loaded    active   running Dispatcher daemon for systemd-networkd
  NetworkManager-wait-online.service                                                        loaded    active   exited  Network Manager Wait Online
  NetworkManager.service                                                                    loaded    active   running Network Manager
  systemd-networkd.service                                                                  loaded    inactive dead    Network Configuration
  systemd-resolved.service                                                                  loaded    active   running Network Name Resolution
  systemd-timesyncd.service                                                                 loaded    active   running Network Time Synchronization
  wpa_supplicant.service                                                                    loaded    active   running WPA supplicant


########    nmcli connection show   ###########

NAME                 UUID                                  TYPE      DEVICE 
SFR_5298             56577409-b60c-405e-bd1a-1cf63ce4f0de  wifi      wlp2s0 
Bbox-40140A7C        133f170f-37ec-404d-a443-1d7eb73228c1  wifi      --     
bts-snir             f7352566-ffc9-467f-9eda-f2a58d049258  wifi      --     
Connexion filaire 1  1b6ed10a-d83a-3584-af22-c657226c44e8  ethernet  --     
FREEBOX KERLOUAN     a64bfb36-463d-4716-a3b7-c8066a152da4  wifi      --     
LAPTOP-MAXIME 7505   ddd72023-93c5-4d2a-9571-7286582fced1  wifi      --     
Livebox-5FD6         fb880269-d8a1-4a4b-bb4c-bb8ca2123e9d  wifi      --     
Livebox-7D8D         4e512446-8f8b-4e5e-a5c1-81d2eb2e34fa  wifi      --     
SFR_5AB0             9530f514-c9ce-4834-89c3-d431704ce5da  wifi      --     
SFR_7748             176b7f04-3a28-4725-b7e1-908932675b88  wifi      --     
_SNCF_WIFI_INOUI     e85f25e7-f7ee-48d5-947d-01e337e782df  wifi      --     

le retour de ligne de commande

$ ./wificheck.sh -l
[sudo] Mot de passe de poney2204 : 
####################################################################
Le fichier wificheck.log a été crée dans /home/poney2204
Vous n'avez plus qu'à copier/coller son contenu entier sur le forum
 accès →→ /home/poney2204/wificheck.log
####################################################################

mais normalement l'éditeur s'ouvre automatiquement

n'hésitez pas à me dire ce que vous en pensez !

Dernière modification par Astrolivier (Le 08/02/2024, à 22:02)


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#71 Le 10/02/2024, à 09:35

bruno

Re : Nouvelle version de wifiCheck

Beaucoup trip de choses me semblent inutilement compliquées.
Exemple :

  modules_array=("cfg80211")
  lsmod_variable=$(lsmod)

  readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "cfg80211" | awk '{split($4, a, ","); for (i in a) print a[i]}')

readarray -t -d "," modules_array <<< $(lsmod | awk '{if ($1 == "cfg80211") print $4}')

et encore il doit ya avoir plus simple ou plus élégant.

Et cici pourquoi utiliser des fonctions alors que de simples vriable explicites suffiraient :

### function for ping printing in wificheck_function
find_my_gateway() {
  ip route show default | cut -d" " -f3
}


##### function to insert bbcode markup for french forum
bbcode_open_function() {
  echo "[code]"
}

bbcode_close_fonction() {
  echo "[/code]"
}

default_ipv4_gateway=$(ip route show default | cut -d" " -f3)

bbcode_open-tag="[code]"
bbcode_close_tag="[/code]"

et ces deux dernières sont de toute façon inutile puisqu'un simple echo suffit.

etc.

KISS


Attention, les bouteilles vendues par Nestlé Waters sont contaminées au monoxyde de dihydrogène.

Hors ligne

#72 Le 11/02/2024, à 13:21

Astrolivier

Re : Nouvelle version de wifiCheck

big_smile

alors je vais tâcher de faire mieux pour le readarray, mais je fais ce que je peux, c'est mon premier script !
par contre pour ta proposition, j'ai tout de même besoin de ma variable lsmod_variable parce que je m'en ressers après, justement pour pas avoir à faire plein de lsmod. le truc c'est que les modules qui utilisent cfg80211 ne sont pas tous les modules wifi, donc je cherche les modules qui utilisent cfg80211, puis les modules utilisant ces modules, et je refais tourner le truc une fois de plus pour être sûr

lsmod_function() {
  modules_array=("cfg80211")
  lsmod_variable=$(lsmod)

  readarray -t -O"${#modules_array[@]}" modules_array < <(echo "${lsmod_variable}" | grep "cfg80211" | awk '{split($4, a, ","); for (i in a) print a[i]}')

  for i in ${!modules_array[@]} ; do
  readarray -t -O"${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep ${modules_array[$i]} | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)

  for i in ${!modules_array[@]} ; do
  readarray -t -O"${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)
  echo  "Module                  Size  Used by"

  for i in ${modules_array}; do
  printf "%s\n" "$(echo "${lsmod_variable}" |grep "${modules_array[i]}" )"
  done
}

je n'ai aucun doute qu'on puisse faire plus élégant/mieux mais je fais ce que je peux (et puis work in progress !)


pourquoi des fonctions, écoute, j'aime bien les fonctions, j'avais mis ça au tout début, et en c++ tout le monde dit qu'il faut mettre des fonctions partout, et puis même si c'est pas super élégant (ou à tout goût tongue )  normalement ça ne pose aucun problème d’efficacité (enfin en bash j'en sais trop rien). pareil work in progress, ça ne me dérange pas de mettre une variable ou un echo, mais l'un dans l'autre je ne trouve pas ce code moche dans le main.

if [[ ${print_bbcode_or_not} -eq 0 ]]; then
  bbcode_open_function
fi

et mes noms de variables c'est quoi le soucis ? je les changerai peut être (pour le coup c'est 2s de boulot) mais elles sont explicites. j'y ai pas passer des heures non plus, comme le reste work in progress !

# Set language as enum : french = 0 ; english = 1 ; chinese = 2 . Default is french.
declare -i language
language=0

# Set as enum if wificheck prints the short output without iw commands
# or the long output with iw commands
# this mainly because iw is not installed by default, and is quite long as it adds 300 lines minimum.
# short = 0 ; long = 1 ; very long = 2
declare -i short_or_long_output
short_or_long_output=0

# set as enum to print bbcode for french forum
# with bbcode = 0 ; without bbcode = 1
declare -i print_bbcode_or_not
print_bbcode_or_not=0

#variables array for lsmod and modinfo
declare -a modules_array
declare lsmod_variable

plus intéressant, tu parlais des tests pour les commandes. j'avais juste vu pour iw parce que vous m'aviez dit que c'était pas dans l'install de base, je m'étais pas trop posé la question pour les autres (à part dkms) parce qu'elles sont toutes sur mon système. mais effectivement, la question est bonne.

if [[ "$(which "iw")" = "" ]]

est-ce que ça suffit (which) ou est ce qu'il y a un meilleur test ?
est-ce que je fais ça pour toutes les commandes ou juste celles qui sont dans "optional".
j'ai mis une liste des commandes et des paquets sur le readme github



pour les traductions, je veux bien faire un deuxième script special bruno sans traduction, mais pour le coup c'est déjà transparent pour l'utilisateur final francophone. si tu as des propositions pour faire une internationalisation dans les règles, je suis preneur, mais là j'ai pas cherché plus loin (et je tiens au fait que ça puisse servir à d'autres que ce forum ou en français), et ça reste un petit script, pas un projet kde.

voilà. Mais merci pour ces critiques constructives. je tâcherai de tout prendre en compte sur la durée wink



le github
https://github.com/olivierPrigent/wifiCheck/tree/main


S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#73 Le 11/02/2024, à 14:34

lynn

Re : Nouvelle version de wifiCheck

Bonjour,

Un test un peu plus simple... code de retour 0 = logiciel installé, 1 = non installé.

if command -v iw >/dev/null; then ...

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#74 Le 12/02/2024, à 19:28

Astrolivier

Re : Nouvelle version de wifiCheck

merci !


j'ai mis toutes les commandes avec un "if command -v" du coup, ça se présente comme ça

declare -A command_array
command_array=([uname]="coreutils" [lsb_release]="lsb-release" [lspci]="pciutils" [lshw]="lshw" [lsusb]="usbutils" [lsmod]="kmod" [dkms]="dkms" [mokutil]="mokutil" [rfkill]="rfkill" [ip]="iproute2" [ping]="iputils-ping" [resolvectl]="systemd" [ufw]="ufw" [nmcli]="network-manager" [iw]="iw" [modinfo]="kmod" [systemctl]="systemd" [iptables]="iptables")

declare key

...


echo -e "\n\n################     nmcli    #################\n"
  key="nmcli"
  if (command -v "$key")  &>/dev/null ; then
    nmcli | head -n -3
  else
    echo "command $key is not present you should install ${command_array[$key]} package"
  fi

aussi j'ai retravaillé le truc, pour faire une version courte, plus courte, et parce que beaucoup d'info sont direct avec nmcli et iw (modules, gateway, RX, dns...)
donc je propose ça (c'est la version longue, mais j'ai mis un "=======" entre la courte et la longue) je pense qu'en 100 lignes, l'essentiel est là, et pour plus de détails, la longue fait 400 lignes (le très longue encore plus)

###############################################
###########    Wifi Check    ##################
###########    2024-02-12    ##################
###############################################


#####  Current kernel, release, desktop  ######

 Current Kernel      :  5.15.0-94-generic 
 Release  Description:	Ubuntu 22.04.3 LTS 
 Current Desktop     :  KDE


################     nmcli    #################

wlp2s0: connecté à SFR_5298
	"Qualcomm Atheros QCA9377"
	wifi (ath10k_pci), C8:94:02:E1:CB:65, hw, mtu 1500
	ip4 par défaut
	inet4 192.168.1.150/24
	route4 192.168.1.0/24 metric 600
	route4 default via 192.168.1.1 metric 600
	route4 169.254.0.0/16 metric 1000
	inet6 fe80::4fed:f35d:4e5b:217c/64
	route6 fe80::/64 metric 1024

p2p-dev-wlp2s0: déconnecté
	"p2p-dev-wlp2s0"
	wifi-p2p, hw

enp3s0: indisponible
	"Realtek RTL810xE"
	ethernet (r8169), B4:45:06:7C:4B:14, hw, mtu 1500

lo: non-géré
	"lo"
	loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
	servers: 1.1.1.1 192.168.1.1
	interface: wlp2s0



##############    iw dev   ####################

phy#0
	Unnamed/non-netdev interface
		wdev 0x4
		addr c8:94:02:e1:cb:65
		type P2P-device
		txpower 0.00 dBm
	Interface wlp2s0
		ifindex 3
		wdev 0x1
		addr c8:94:02:e1:cb:65
		ssid SFR_5298
		type managed
		channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
		txpower 20.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0


################     lsusb     ################

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 002: ID 0cf3:e009 Qualcomm Atheros Communications 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


#######   lsmod | grep <wifi_modules>   #######

Module                  Size  Used by
ath10k_pci             49152  0
ath10k_core           602112  1 ath10k_pci
ath                    36864  1 ath10k_core
mac80211             1249280  1 ath10k_core
cfg80211              974848  3 ath,mac80211,ath10k_core


#################  dkms status  ###############

command dkms is not present you should install dkms package


#########   mokutil --sb-state    #############

SecureBoot disabled


##########    sudo rfkill list    #############

0: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no


################    ping no-DNS   ###################

ping gateway ipv4 : ok
ping gateway ipv6 : bad !
ping cloudflare ipv4 : ok
ping cloudflare ipv6 : bad !


###########    sudo ufw status    #############

État : inactif
===================================================================== 


#########  resolvectl | grep Server  #########

Current DNS Server: 192.168.1.1
       DNS Servers: 1.1.1.1 192.168.1.1


######    cat /etc/network/interfaces   #######
# ce fichier est obsolète sauf si vous savez ce que vous faîtes #

cat: /etc/network/interfaces: Aucun fichier ou dossier de ce type


########     sudo lshw -C network     #########

  *-network
       description: Wireless interface
       product: QCA9377 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: wlp2s0
       version: 31
       serial: c8:94:02:e1:cb:65
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=5.15.0-94-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=192.168.1.150 latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:135 memory:a1000000-a11fffff
  *-network
       description: Ethernet interface
       product: RTL810xE PCI Express Fast Ethernet controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 07
       serial: b4:45:06:7c:4b:14
       capacity: 100Mbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-94-generic firmware=rtl8106e-1_0.0.1 06/29/12 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:23 ioport:e000(size=256) memory:a1300000-a1300fff memory:80100000-80103fff


####### lspci -k -nn | grep -A 3 -i net  ######

02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter [1028:1810]
	Kernel driver in use: ath10k_pci
	Kernel modules: ath10k_pci
03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller [10ec:8136] (rev 07)
	Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller [1028:0a10]
	Kernel driver in use: r8169
	Kernel modules: r8169


################    ip a    ###################

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether b4:45:06:7c:4b:14 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether c8:94:02:e1:cb:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 48803sec preferred_lft 48803sec
    inet6 fe80::4fed:f35d:4e5b:217c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


#######   modinfo <wifi_modules> |grep parm   #######


  Modules parm for ath :

  Modules parm for ath10k_core :
parm:           debug_mask:Debugging mask (uint)
parm:           uart_print:Uart target debugging (bool)
parm:           skip_otp:Skip otp failure for calibration in testmode (bool)
parm:           cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm:           rawmode:Use raw 802.11 frame datapath (bool)
parm:           coredump_mask:Bitfield of what to include in firmware crash file (ulong)
parm:           fw_diag_log:Diag based fw log debugging (bool)

  Modules parm for ath10k_pci :
parm:           irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm:           reset_mode:0: auto, 1: warm only (default: 0) (uint)

  Modules parm for cfg80211 :
parm:           bss_entries_limit:limit to number of scan BSS entries (per wiphy, default 1000) (int)
parm:           ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
parm:           cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)

  Modules parm for mac80211 :
parm:           minstrel_vht_only:Use only VHT rates when VHT is supported by sta. (bool)
parm:           max_nullfunc_tries:Maximum nullfunc tx tries before disconnecting (reason 4). (int)
parm:           max_probe_tries:Maximum probe tries before disconnecting (reason 4). (int)
parm:           beacon_loss_count:Number of beacon intervals before we decide beacon was lost. (int)
parm:           probe_wait_ms:Maximum time(ms) to wait for probe response before disconnecting (reason 4). (int)
parm:           ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)


####### systemctl list network units  #########

  networkd-dispatcher.service                                                               loaded    active   running Dispatcher daemon for systemd-networkd
  NetworkManager-wait-online.service                                                        loaded    active   exited  Network Manager Wait Online
  NetworkManager.service                                                                    loaded    active   running Network Manager
  systemd-networkd.service                                                                  loaded    inactive dead    Network Configuration
  systemd-resolved.service                                                                  loaded    active   running Network Name Resolution
  systemd-timesyncd.service                                                                 loaded    active   running Network Time Synchronization
  wpa_supplicant.service                                                                    loaded    active   running WPA supplicant


########    nmcli connection show   ###########

NAME                 UUID                                  TYPE      DEVICE 
SFR_5298             56577409-b60c-405e-bd1a-1cf63ce4f0de  wifi      wlp2s0 
Bbox-40140A7C        133f170f-37ec-404d-a443-1d7eb73228c1  wifi      --     
bts-snir             f7352566-ffc9-467f-9eda-f2a58d049258  wifi      --     
Connexion filaire 1  1b6ed10a-d83a-3584-af22-c657226c44e8  ethernet  --     
FREEBOX KERLOUAN     a64bfb36-463d-4716-a3b7-c8066a152da4  wifi      --     
LAPTOP-MAXIME 7505   ddd72023-93c5-4d2a-9571-7286582fced1  wifi      --     
Livebox-5FD6         fb880269-d8a1-4a4b-bb4c-bb8ca2123e9d  wifi      --     
Livebox-7D8D         4e512446-8f8b-4e5e-a5c1-81d2eb2e34fa  wifi      --     
SFR_5AB0             9530f514-c9ce-4834-89c3-d431704ce5da  wifi      --     
SFR_7748             176b7f04-3a28-4725-b7e1-908932675b88  wifi      --     
_SNCF_WIFI_INOUI     e85f25e7-f7ee-48d5-947d-01e337e782df  wifi      --     


#########    nmcli -f all d show wlp2s0     #############

GENERAL.DEVICE:                         wlp2s0
GENERAL.TYPE:                           wifi
GENERAL.NM-TYPE:                        NMDeviceWifi
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/Devices/3
GENERAL.VENDOR:                         Qualcomm Atheros
GENERAL.PRODUCT:                        QCA9377 802.11ac Wireless Network Adapter
GENERAL.DRIVER:                         ath10k_pci
GENERAL.DRIVER-VERSION:                 5.15.0-94-generic
GENERAL.FIRMWARE-VERSION:               WLAN.TF.2.1-00021-QCARMSWP-1
GENERAL.HWADDR:                         C8:94:02:E1:CB:65
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connecté)
GENERAL.REASON:                         0 (Aucun raison donnée)
GENERAL.IP4-CONNECTIVITY:               4 (plein)
GENERAL.IP6-CONNECTIVITY:               4 (plein)
GENERAL.UDI:                            /sys/devices/pci0000:00/0000:00:14.0/0000:02:00.0/net/wlp2s0
GENERAL.PATH:                           pci-0000:02:00.0
GENERAL.IP-IFACE:                       wlp2s0
GENERAL.IS-SOFTWARE:                    non
GENERAL.NM-MANAGED:                     oui
GENERAL.AUTOCONNECT:                    oui
GENERAL.FIRMWARE-MISSING:               non
GENERAL.NM-PLUGIN-MISSING:              non
GENERAL.PHYS-PORT-ID:                   --
GENERAL.CONNECTION:                     SFR_5298
GENERAL.CON-UUID:                       56577409-b60c-405e-bd1a-1cf63ce4f0de
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
GENERAL.METERED:                        non (deviné)
CAPABILITIES.CARRIER-DETECT:            non
CAPABILITIES.SPEED:                     1 Mb/s
CAPABILITIES.IS-SOFTWARE:               non
CAPABILITIES.SRIOV:                     non
INTERFACE-FLAGS.UP:                     oui
INTERFACE-FLAGS.LOWER-UP:               oui
INTERFACE-FLAGS.CARRIER:                oui
INTERFACE-FLAGS.PROMISC:                non
WIFI-PROPERTIES.WEP:                    oui
WIFI-PROPERTIES.WPA:                    oui
WIFI-PROPERTIES.WPA2:                   oui
WIFI-PROPERTIES.TKIP:                   oui
WIFI-PROPERTIES.CCMP:                   oui
WIFI-PROPERTIES.AP:                     oui
WIFI-PROPERTIES.ADHOC:                  oui
WIFI-PROPERTIES.2GHZ:                   oui
WIFI-PROPERTIES.5GHZ:                   oui
WIFI-PROPERTIES.MESH:                   oui
WIFI-PROPERTIES.IBSS-RSN:               oui
AP[1].IN-USE:                           *
AP[1].BSSID:                            6C:61:F4:3D:52:9E
AP[1].SSID:                             SFR_5298
AP[1].MODE:                             Infra
AP[1].CHAN:                             1
AP[1].RATE:                             130 Mbit/s
AP[1].SIGNAL:                           79
AP[1].BARS:                             ▂▄▆_
AP[1].SECURITY:                         WPA1 WPA2
IP4.ADDRESS[1]:                         192.168.1.150/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.ROUTE[3]:                           dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS[1]:                             1.1.1.1
IP4.DNS[2]:                             192.168.1.1
DHCP4.OPTION[1]:                        broadcast_address = 192.168.1.255
DHCP4.OPTION[2]:                        dhcp_lease_time = 86400
DHCP4.OPTION[3]:                        dhcp_server_identifier = 192.168.1.1
DHCP4.OPTION[4]:                        domain_name_servers = 192.168.1.1
DHCP4.OPTION[5]:                        expiry = 1707804935
DHCP4.OPTION[6]:                        host_name = poney2204-inspiron
DHCP4.OPTION[7]:                        ip_address = 192.168.1.150
DHCP4.OPTION[8]:                        next_server = 192.168.1.1
DHCP4.OPTION[9]:                        ntp_servers = 192.168.1.1
DHCP4.OPTION[10]:                       requested_broadcast_address = 1
DHCP4.OPTION[11]:                       requested_domain_name = 1
DHCP4.OPTION[12]:                       requested_domain_name_servers = 1
DHCP4.OPTION[13]:                       requested_domain_search = 1
DHCP4.OPTION[14]:                       requested_host_name = 1
DHCP4.OPTION[15]:                       requested_interface_mtu = 1
DHCP4.OPTION[16]:                       requested_ms_classless_static_routes = 1
DHCP4.OPTION[17]:                       requested_nis_domain = 1
DHCP4.OPTION[18]:                       requested_nis_servers = 1
DHCP4.OPTION[19]:                       requested_ntp_servers = 1
DHCP4.OPTION[20]:                       requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[21]:                       requested_root_path = 1
DHCP4.OPTION[22]:                       requested_routers = 1
DHCP4.OPTION[23]:                       requested_static_routes = 1
DHCP4.OPTION[24]:                       requested_subnet_mask = 1
DHCP4.OPTION[25]:                       requested_time_offset = 1
DHCP4.OPTION[26]:                       requested_wpad = 1
DHCP4.OPTION[27]:                       routers = 192.168.1.1
DHCP4.OPTION[28]:                       subnet_mask = 255.255.255.0
IP6.ADDRESS[1]:                         fe80::4fed:f35d:4e5b:217c/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024
CONNECTIONS.AVAILABLE-CONNECTION-PATHS: /org/freedesktop/NetworkManager/Settings/7
CONNECTIONS.AVAILABLE-CONNECTIONS[1]:   56577409-b60c-405e-bd1a-1cf63ce4f0de | SFR_5298


#########    iw dev wlp2s0 link    #############

Connected to 6c:61:f4:3d:52:9e (on wlp2s0)
	SSID: SFR_5298
	freq: 2412
	RX: 319203362 bytes (465439 packets)
	TX: 66778576 bytes (245260 packets)
	signal: -41 dBm
	rx bitrate: 65.0 MBit/s MCS 7
	tx bitrate: 1.0 MBit/s

	bss flags:	short-slot-time
	dtim period:	3
	beacon int:	100


########   iw dev wlp2s0 station dump  ###########

Station 6c:61:f4:3d:52:9e (on wlp2s0)
	inactive time:	12 ms
	rx bytes:	319203362
	rx packets:	465439
	tx bytes:	66778576
	tx packets:	245260
	tx retries:	0
	tx failed:	0
	beacon loss:	0
	beacon rx:	60999
	rx drop misc:	400
	signal:  	-41 [-41, -73] dBm
	signal avg:	-40 [-40, -73] dBm
	beacon signal avg:	-41 dBm
	tx bitrate:	1.0 MBit/s
	tx duration:	125906075 us
	rx bitrate:	65.0 MBit/s MCS 7
	rx duration:	0 us
	authorized:	yes
	authenticated:	yes
	associated:	yes
	preamble:	long
	WMM/WME:	yes
	MFP:		no
	TDLS peer:	no
	DTIM period:	3
	beacon interval:100
	short slot time:yes
	connected time:	37600 seconds
	associated at [boottime]:	61952.854s
	associated at:	1707718533221 ms
	current time:	1707756133310 ms

S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne

#75 Le 17/02/2024, à 22:46

Astrolivier

Re : Nouvelle version de wifiCheck

les changements sont remontés sur le github, j'ai essayé d'améliorer encore un peu, pris en compte autant que possible les remarques de bruno

https://github.com/olivierPrigent/wifiCheck/tree/main

liste des commandes

printf '%(%Y-%m-%d)T\n' -1
uname -r
lsb_release -d
nmcli
iw dev
nmcli device wifi
lsusb
lspci -k -nn | grep -A 3 -i net
lsmod | grep <wifi_modules>
dkms status
mokutil --sb-state
sudo rfkill list
ping <gateway>
ping <cloudflare>
sudo ufw status


# -l
resolvectl | grep Server
cat /etc/network/interfaces
sudo lshw -C network
pccardctl info
ip a
modinfo <wifi_modules> |grep parm
systemctl list-units --type=service --all |grep -iE 'network|wpa'
nmcli connection show
nmcli -f all d show $interface
iw dev <device> link


# -v
iw list
iw dev <device> scan
sudo iptables -vL -t filter|nat|mangle|raw|security


la fonction dont le résultat me satisfait mais qui peut probablement être améliorée (j'ai essayé pleins de trucs, lu beaucoup de doc, mais je suis au bout de mes possibilités)

## find the modules that use cfg80211, find modules that use those modules,
## print the lsmod of all these modules, sort only one instance
lsmod_function() {
  modules_array=("cfg80211")
  lsmod_variable=$(lsmod)

  readarray -t -d "," -O"${#modules_array[@]}" modules_array <<< ${lsmod_variable} | awk '{if ($1 == "cfg80211") print $4}'

  for i in "${!modules_array[@]}" ; do
    readarray -t -O "${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  for i in "${!modules_array[@]}" ; do
    readarray -t -O "${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)

  for i in "${!modules_array[@]}" ; do
    readarray -t -O "${#modules_array[@]}"  modules_array   < <(echo "${lsmod_variable}"  | grep "${modules_array[$i]}" | awk '{split($4, a, ","); for (i in a) print a[i]}')
  done

  readarray -t modules_array < <(printf "%s\n" "${modules_array[@]}" |sort -u)

  echo  "Module                  Size  Used by"
  length=${#modules_array[@]}
  for (( j=0; j<length; j++ )); do
    printf "%s\n" echo "$lsmod_variable" | awk -v word="${modules_array[$j]}" '$1 == word { print }'
  done
}

pour essayer facilement (version longue, enlever le "-l" à la fin pour la version de base)

  wget -N -t 5 -T 10 https://raw.githubusercontent.com/olivierPrigent/wifiCheck/main/wificheck.sh && chmod 755 wificheck.sh && ./wificheck.sh -l

S'il faut absolument faire des sacrifices pour assurer le progrès de l'humanité, ne serait-il pas indispensable de s'en tenir au principe selon lequel c'est à ceux dont on exige le sacrifice que la décision doit revenir en dernier ressort ? (howard zinn)

Hors ligne