Freebox Server (Ultra V9/ Pop V8/ Delta V7 / Revolution V6 / Mini 4K)

  • État Nouveau
  • Pourcentage achevé
    0%
  • Type Évolution
  • Catégorie Freebox OS → Interface Web
  • Assignée à Personne
  • Système d'exploitation Tous
  • Sévérité Basse
  • Priorité Très Basse
  • Basée sur la version 4.8.16
  • Due pour la version Non décidée
  • Échéance Non décidée
  • Votes
  • Privée

FS#39851 - Possibilité de filter les périphériques réseau par addresse MAC ou IP

Bonjour,

Serait-il possible d’ajouter un champs de recherche pour filtrer la liste en cherchant dans les adresse MAC, IP, ou même le nom ? C’est un peu compliqué actuellement de trouver un client si on ne connaît que son IP/MAC

Merci

nbanba a commenté le 28.11.2024 10:10

Bonjour

Vous pouvez le faire facilement depuis l'API:
Par exemple chez moi, sur le LAN de la Freebox:

Filtrage sur le hostname

$ # déclarez la variable NAME avec la valeur à chercher
$ NAME=14RV-RT-US
$ # jouez la commande suivante 
$ get_freebox_api lan/browser/pub | jq --arg name "${NAME}" '.result[] | select (.primary_name == $name)'

Résultat chez moi pour l'hote 14RV-RT-US

{
  "l2ident": {
    "id": "00:87:31:00:01:44",
    "type": "mac_address"
  },
  "active": true,
  "persistent": true,
  "access_point": {
    "mac": "34:27:92:63:39:90",
    "type": "gateway",
    "connectivity_type": "ethernet",
    "ethernet_information": {
      "speed": 1000,
      "duplex": "full",
      "max_port_speed": 1000,
      "link": "up"
    },
    "uid": "537a6346d3b00881f6994f0411e7c8a5"
  },
  "vendor_name": "Cisco Systems, Inc",
  "host_type": "networking_device",
  "interface": "pub",
  "id": "ether-00:87:31:00:01:44",
  "last_time_reachable": 1732787212,
  "primary_name_manual": true,
  "l3connectivities": [
    {
      "addr": "192.168.100.144",
      "active": true,
      "reachable": true,
      "last_activity": 1732787212,
      "af": "ipv4",
      "last_time_reachable": 1732787212
    },
    {
      "addr": "fe80::287:31ff:fe00:144",
      "active": false,
      "reachable": false,
      "last_activity": 1732651635,
      "af": "ipv6",
      "last_time_reachable": 1732651635
    }
  ],
  "default_name": "",
  "first_activity": 1717340519,
  "reachable": true,
  "last_activity": 1732787212,
  "primary_name": "14RV-RT-US"
}

De même en filtrant sur la mac address :

$ # déclarez la variable MAC avec la valeur à chercher
$ MAC=00:87:31:00:01:44
$ # jouez la commande suivante 
$ get_freebox_api lan/browser/pub | jq --arg mac "${MAC}" '.result[] | select (.l2ident.id == $mac)'

Résultat chez moi avec la MAC 00:87:31:00:01:44

{
  "l2ident": {
    "id": "00:87:31:00:01:44",
    "type": "mac_address"
  },
  "active": true,
  "persistent": true,
  "access_point": {
    "mac": "34:27:92:63:39:90",
    "type": "gateway",
    "connectivity_type": "ethernet",
    "ethernet_information": {
      "speed": 1000,
      "duplex": "full",
      "max_port_speed": 1000,
      "link": "up"
    },
    "uid": "537a6346d3b00881f6994f0411e7c8a5"
  },
  "vendor_name": "Cisco Systems, Inc",
  "host_type": "networking_device",
  "interface": "pub",
  "id": "ether-00:87:31:00:01:44",
  "last_time_reachable": 1732787212,
  "primary_name_manual": true,
  "l3connectivities": [
    {
      "addr": "192.168.100.144",
      "active": true,
      "reachable": true,
      "last_activity": 1732787212,
      "af": "ipv4",
      "last_time_reachable": 1732787212
    },
    {
      "addr": "fe80::287:31ff:fe00:144",
      "active": false,
      "reachable": false,
      "last_activity": 1732651635,
      "af": "ipv6",
      "last_time_reachable": 1732651635
    }
  ],
  "default_name": "",
  "first_activity": 1717340519,
  "reachable": true,
  "last_activity": 1732787212,
  "primary_name": "14RV-RT-US"
}

Si vous ne savez pas comment utiliser l'API, il existe une librairie en BASH qui permet d'utiliser simplement l'API avec des commandes comme celle utilisée ci-dessus (get_freebox_api).

Si vous n'avez pas de terminal BASH, vous pouvez en obtenir un facilement sous Windows avec le système WSL:
Ouvrir un 'cmd' en 'administrateur' depuis windows, puis tapper :

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --list --online
wsl --install -d Debian

Une fois sous Debian, il faut installer curl, openssl, file, coreutils, jq :

$ sudo apt install curl openssl file coreutils jq

Puis installer la librairie:

$ curl -L https://github.com/nbanb/fbx-delta-nba_bash_api.sh/raw/nbanb-freebox-api/fbx-delta-nba_bash_api.sh >./fbx-delta-nba_bash_api.sh

Puis prendre connaissance du "QUICK START GUIDE" ici :
https://github.com/nbanb/fbx-delta-nba_bash_api.sh

Ou du 'QUICK START FULL EXAMPLE' ici:
https://github.com/nbanb/fbx-delta-nba_bash_api.sh?tab=readme-ov-file#QSFULLEX

Cordialement
nbanba

nbanba a commenté le 28.11.2024 10:44

Bonjour

désolé, j'ai oublié l'expression pour chercher une IP :

$ # déclarez la variable MAC avec la valeur à chercher
$ IP=192.168.100.144
$ # jouez la commande suivante 
$ get_freebox_api lan/browser/pub | jq --arg ip "${IP}" '.result[] | select (.l3connectivities[].addr == $ip)'

On obtient toujours le même résultat :

{
  "l2ident": {
    "id": "00:87:31:00:01:44",
    "type": "mac_address"
  },
  "active": true,
  "persistent": true,
  "access_point": {
    "mac": "34:27:92:63:39:90",
    "type": "gateway",
    "connectivity_type": "ethernet",
    "ethernet_information": {
      "speed": 1000,
      "duplex": "full",
      "max_port_speed": 1000,
      "link": "up"
    },
    "uid": "537a6346d3b00881f6994f0411e7c8a5"
  },
  "vendor_name": "Cisco Systems, Inc",
  "host_type": "networking_device",
  "interface": "pub",
  "id": "ether-00:87:31:00:01:44",
  "last_time_reachable": 1732789252,
  "primary_name_manual": true,
  "l3connectivities": [
    {
      "addr": "192.168.100.144",
      "active": true,
      "reachable": true,
      "last_activity": 1732789252,
      "af": "ipv4",
      "last_time_reachable": 1732789252
    },
    {
      "addr": "fe80::287:31ff:fe00:144",
      "active": false,
      "reachable": false,
      "last_activity": 1732651635,
      "af": "ipv6",
      "last_time_reachable": 1732651635
    }
  ],
  "default_name": "",
  "first_activity": 1717340519,
  "reachable": true,
  "last_activity": 1732789252,
  "primary_name": "14RV-RT-US"
}

PS : Pour convertir les durées depuis epoch 0 vous pouvez utiliser la commande :

$ date -d@1732789252
jeu. 28 nov. 2024 11:20:52 CET

Cordialement
nbanba

Chargement...

Activer les raccourcis clavier

Liste des tâches

Détails de la tâche

Édition de la tâche