IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Android scan reseau local


Sujet :

Web & réseau Delphi

  1. #1
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    août 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 970
    Points : 1 386
    Points
    1 386
    Par défaut Android scan reseau local
    Bonjour,

    Je souhaiterais ajouter une fonction dans mon appli Android pour découvrir automatiquement les objets sur le réseau local.
    Pour cela j'ai cherché sur le forum et sur Google comment lister les adresses locales.
    J'ai trouvé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TIdStack.IncUsage;
    try
      GStack.AddLocalAddressesToList(ComboBox1.Items);
    finally
      TIdStack.DecUsage;
    end;
    Sur Windows j'obtiens les adresses locales de l'ordinateur exécutant la fonction ex 192.168.1.17
    Mais sur Android sa me donne 127.0.0.1 au lieu de 192.168.1.24

    Je débute sur Android, comment je peux récupérer l'adresse IP local ?

    Après pour ma fonction je pensai tester la connexion sur un port donné en me basant sur l'adresse IP local récupéré ex avec 192.168.1.17 je teste 192.168.1.1 à 192.168.1.255
    Dans les NVR on voit ce type de fenêtre sa affiche les IP, port et adresses MAC des caméras trouvés.
    Avez-vous une idée de comment récupérer la rangé d’IP local ? Sa éviterai de scanner dans le vent sur ma Livebox j'ai mis de 192.168.1.15 à 192.168.1.150 donc en scannant jusqu’à 255 je perds du temps

    Merci pour votre aide.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  2. #2
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    août 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 970
    Points : 1 386
    Points
    1 386
    Par défaut
    Je parcours le dossier source rtl/android et https://developer.android.com/reference/ parce que l'aide Embarcadero sur Android je ne l'ai pas trouvé

    je me dit l’IP va être dans les infos Wifi, je test le SSID j'ai "<unknow ssid>"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Function GetWifiManager: JWifiManager;
    Var
      WifiServiceNative: JObject;
    Begin
      WifiServiceNative := TAndroidHelper.Context.getSystemService
        (TJContext.JavaClass.WIFI_SERVICE);
      If Not Assigned(WifiServiceNative) Then
        Raise Exception.Create('Could not locate Wfi Service');
      Result := TJWifiManager.Wrap((WifiServiceNative As ILocalObject).GetObjectID);
      If Not Assigned(Result) Then
        Raise Exception.Create('Could not access Wifi Manager');
    End;
     
    Function GetIPAdresses: String;
    Var
      WifiManager: JWifiManager;
      ConnectionInfo: JWifiInfo;
    Begin
      WifiManager    := GetWifiManager;
      ConnectionInfo := WifiManager.getConnectionInfo;
      Result         := JStringToString(ConnectionInfo.getSSID);
    End;
     
    Procedure THeaderFooterwithNavigation.Button1Click(Sender: TObject);
    Begin
      ComboBox1.Items.Add(GetIPAdresses);
    End;
    en permissions j'ai mis tout ce qui concerne le wifi et internet.

    je me suis inspiré d'un code ici :
    https://stackoverflow.com/questions/...vice-from-code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE); String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
    je vais partir sur les Network interface c'est peut-la
    C'est l'enfer sans aide
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    8 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 030
    Points : 26 006
    Points
    26 006
    Par défaut
    j'utilise ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        var
          WifiManagerObj: JObject;
          WifiManager   : JWifiManager;
          WifiInfo      : JWifiInfo;
        begin
          WifiManagerObj := SharedActivityContext.getSystemService(TJContext.JavaClass.WIFI_SERVICE);
          WifiManager := TJWifiManager.Wrap((WifiManagerObj as ILocalObject).GetObjectID);
          WifiInfo := WifiManager.getConnectionInfo();
          Result := WifiInfo.getIpAddress;
        end;
    mais il serait peut-être plus judicieux de passer par un Broadcast UDP (c'est ce que font les composants Tethering)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. [WiFi] Diffusé caméra android vers pc en reseau local?
    Par adelcrb dans le forum Réseaux
    Réponses: 1
    Dernier message: 26/03/2016, 16h59
  2. recuperer adresse MAC d'un pc sur un reseau local
    Par LineLe dans le forum Développement
    Réponses: 3
    Dernier message: 25/03/2005, 16h37
  3. [VB6] comment voir les machines d'un réseau local
    Par bouboussjunior dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 16/07/2004, 15h00
  4. Intégration Red Hat 9.0 dans réseau local
    Par TuxP dans le forum Réseau
    Réponses: 5
    Dernier message: 15/04/2004, 23h41
  5. Creer un reseau local via l adsl
    Par loki dans le forum Développement
    Réponses: 11
    Dernier message: 12/08/2002, 00h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo