Comment scanner un réseau ?

Dans le bar parce que c'est un peu HS même s'il y a des morceaux ESP dedans.

Soit un réseau wifi avec un serveur DHCP. L’utilisateur final n'a pas accès (ou difficilement) aux adresses IP distribuées par le serveur.
Soit aussi plusieurs (c'est important) ESP32 clients DHCP et serveurs web. Les pages web constituent la seule GUI des ESP32.

Je me retrouve enfermé dehors : pour communiquer avec les ESP, l'utilisateur doit avoir les IP qu'il n'a pas.

J'ai essayé d'écrire un programme qui scanne toutes les IPs et j'ai fait en sorte que les ESP32 répondent à une requête http://IP/infos.txt avec le nom et l'IP de l'ESP32

Donc c'est OK, je peux retrouver mes ESP32.

mais c'est loooonnng très long. À la maison avec un réseau /24 : plus de 10 minutes, le temps que toutes les adresses non utilisées renvoient un timeout
Si j'essaye dans mon bahut avec un réseau /16 se sera ... 2 jours

Est-ce que quelqu'un à une idée meilleure que la mienne ?

Si j'ai bien compris, j'essayerais de faire du broadcast, c'est à dire envoyer une trame UDP qui sera distribué à toutes les machines de ton réseau.
Il faut du coup que ton ESP32 écoute sur le port UDP de destinnation et qu'ils répondent à l'envoyeur.

Cela devrait être assez rapide, mais réclame un peu de programmation sur tes ESP32.

Bonne idée, merci. Je vais chercher dans cette direction.

Via les adresses mac des ESP que tu installes. Tu les connais avant de les raccorder au réseau

Oui mais sans accès au serveur DHCP difficile d'en faire quelque chose.

Bonjour

Je ne sais pas quel système d'exploitation tu utilises, mais pour récupérer les adresses IP et MAC des périphériques réseau qui sont connectés à ma Freebox (réseau 192.168.0.0/24) depuis mon système debian et avec les privilèges du compte root, j'utilise nmap

(dans la copie d'écran ci-dessous, je n'ai pas laissé mes véritables adresses MAC)

root@deb12:~# nmap -sP 192.168.0.0/24
Starting Nmap 7.93 ( https://nmap.org ) at 2024-05-20 21:43 CEST
Nmap scan report for 192.168.0.16
Host is up (0.15s latency).
MAC Address: 48:2C:A0:33:44:55 (Xiaomi Communications)
Nmap scan report for 192.168.0.254
Host is up (0.00034s latency).
MAC Address: 00:24:66:77:88:99 (Freebox SAS)
Nmap scan report for 192.168.0.18
Host is up.
Nmap done: 256 IP addresses (3 hosts up) scanned in 6.17 seconds
root@deb12:~# 

Je n'ai aucun microcontrôleur connecté pour l'instant sur mon réseau local, sinon, ils seraient dans la liste retournée, mais on peut voir que mon smartphone Xiaomi (adresse IP 192.168.0.16) est bien connecté à ma Freebox


comment ça, si tu utilise la MAC, c'est que tu fais de l'ethernet, le DHCP n'intervient pas à ce niveau.
Ce qu'il faut voir, c'est sur quoi tourne ce que tu appels l'utilisateur.

Une carte wifi (même celle d'un ESP32) a aussi une adresse MAC et peut aussi utiliser un DHCP s'il existe.

Il s'agit d'un réseau en établissement scolaire... organisation complexe tant technique qu'humaine, forcément et, pour prendre mon cas perso, j'ai les clés des différents SSID wifi mais pas d'accès au serveur DHCP : c'est le département et ses tech qui y ont accès.
Et pourtant j'ai des « droits » assez larges par rapport à la plupart des « personnes ressource » d'autres établissement. Donc je ne peux pas aller voir les baux DHCP comme sur ma box, le prof lambda encore moins. Je peux faire un scan nmap, pourquoi pas mais pas trop réaliste pour tout le monde.

L'idée est de rester le plus KISS possible

Je pense que tu ne réponds pas à la question de terwal.
Tu veux faire un scan de ton réseau, mais quel est l'utilisateur, PC ou carte ESP ?
nmap sur PC, c'est OK, mais porter nmap sur ESP32 :grimacing: :grimacing:

Oui, mais le fait de pouvoir utiliser quelque chose n'implique l'obligation :slight_smile:
Là il n'est pas question ESP32 ou autre device, mais des couches de protocoles.
Le DHCP intervient sur la couche IP, la MAC sur la couche Ethernet.

Comme l'indique @hbachetti, ce n'est pas le fond de ma question.

J'ai l'impression que tu mélanges un peu tout ?
Le DHCP sert à gérer les IP et donc la couche IP.
la première question à ce poser et peut tu te connecter à ton WIFI, c'est à dire il y a t-il une limitation sur les MAC adresses ?
Si il y a pas de limitation des MAC, je n'ai pas compris ton histoire de DHCP.

Mais si tu es connecté à ton WIFI, à priori tu as aussi une IP.
Donc tu doit pouvoir interroger le DHCP.
Au pire même si tu t'es auto-attribuer une IP, tu peux toujours faire de l'Ethernet.
Le soucis avec l'Ethernet ce que tu accède qu'a ton sous-réseaux.

Mais si on en reviens à ma question, c'est à dire que l'utilisateur est aussi un ESP32 connecté en WIFI et que celui-ci veux accéder à d'autre ESP32, à priori il doit tout le monde doit être dans le même sous-réseau.
Si l'utilisateur est sur un PC, tu peux effectivement utiliser un logiciel dédié.

Après tu dois aussi pouvoir accéder à la table de mappage utiliser par ton Device, mais je n'ai aucune idée comment cela se fait sur ESP32 :slight_smile:

Je ne sais pas si je suis claire?

Effectivement je ne suis pas clair.

L’élève utilise l’ESP32 et le navigateur de son smartphone ou tablette ou …
Le prof lui indique l’adresse à consulter.

Mais pour la connaître il faut faire un Scan du réseau depuis un autre client (non ESP 32) puisqu’il n’y a pas d’autre interface que l’interface webutilisateur

Le problème c'est que sans interface utilisateur, cette IP je l'ai bien mais je ne la connais pas à priori.

Et la suggestion d'amic n'est pas applicable ?
Quitte à rediriger l'affichage vers une page WEB créée pour ce besoin ?

riton@alpha2:~$ nmap -sP 192.168.1.1/24
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-21 16:52 CEST
Nmap scan report for lan.home (192.168.1.1)
Host is up (0.00046s latency).
Nmap scan report for esp-03381f.home (192.168.1.10)
Host is up (0.048s latency).
Nmap scan report for viessmann.home (192.168.1.14)
Host is up (0.0031s latency).
Nmap scan report for tft-monitor (192.168.1.15)
Host is up (0.0098s latency).
Nmap scan report for tl-wa801n.home (192.168.1.18)
Host is up (0.0022s latency).
Nmap scan report for esp-c2e8d8.home (192.168.1.19)
Host is up (0.020s latency).
Nmap scan report for alpha2.home (192.168.1.121)
Host is up (0.00011s latency).
Nmap scan report for domopi (192.168.1.134)
Host is up (0.00062s latency).
Nmap done: 256 IP addresses (8 hosts up) scanned in 3.21 seconds

Je n'ai pas compris, c'est quoi cette interface web utilisateur ?

Ce n'est pas un problème, c'est ton but :slight_smile:
il suffit de te faire un programme sur ton mobile/PC qui te scanne les IP et dans lequel tu as entrée les MAC adresse de tes ESP32 ?

Moi je resterais sur le fait que tes ESP32 réponde à une requête broadcast et réaliserais une petit application sur mon PC.
Mais la solution de @amic sera surement plus simple et rapide à mettre en œuvre.
Je n'ai jamais testé mais les scanner réseau sur Android, font aussi bien des requêtes ARP, ping ou DNS

Edit: vous avez un DNS dans votre réseau ?

Une page web avec les mesures faites par l'ESP32

C'est la solution retenue (mais rien de réalisé pour le moment, néanmoins elle a ma préférence.

Oui mais à ma connaissance elle sert uniquement aux éléments clé du réseau et je n'ai du tout pas la main dessus et pour toucher à l'infrastructure, c'est très compliqué. Tout juste s'il ne faut pas l'accord du recteur après avis de la ministre et du président du conseil départemental. (j'exagère à peine)

Faut que je teste in situ mais à priori il n'y a pas de raison technique que ça ne fonctionne pas. Par contre une grosse raison humaine : un prof normal n'utilise pas nmap :wink:

Alors je t'avoue que ca fait bien longtemps que je ne me suis pas penché sur la question, mais normalement il peut être possible d'envoyer des requêtes d'enregistrement au serveur de DNS.
Qui ne tente rien n'a rien :slight_smile:
Vous n'avez pas un club d'informatique dans ton collège?
Ca pourrait être cool de proposer aux élèves d'être des "white hat" :rofl:

nan merci, j'ai de très bonnes relations avec les services infos du rectorat mais plutôt tendues avec l'entreprise prestataire du CD. Entre les deux j’arrive à faire mon job sur l'essentiel, je ne vais pas prendre de risque avec le superflu.

On pourrait aussi demander à l'ESP32, par exemple au démarrage, dès que le serveur DHCP lui a donné une adresse IP, d'indiquer lui même la valeur du dernier (si en /24) octet de son adresse IP en faisant clignoter une led.

J'y ai pensé aussi, puisque le LED de la carte est une interface utilisateur (rudimentaire certes) mais le réseau est en /16.

Faudrait être attentif en comptant :wink:

Edit : :laughing: le commentaire du code :